论坛首页 移动开发技术论坛

Unity3D中 Android插件findviewbyid返回null的解决办法

浏览 1735 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-12-31  

       最近在给Unity3D接入各个Android运营平台的插件,其中需要自己做一个简单的WebView用于显示游戏内广告等,在制作的过程中碰到了一个很蹊跷的问题。

       按照正常的工程来做,发现findViewById返回了一个null 导致了空指针异常。无论是直接用Unity编译apk还是用Unity导出Android工程,都会出现该问题。经过各种查找,最终找到了问题的原因。

       问题的原因主要在于,在我们将自己的android工程打成jar插件时,原来的R.id.xxxxx已经被转换成相应的数字id编译进了jar包,而Unity3D在导出工程或是apk的时候,会对所有资源进行重新的id编译,这就导致我们jar中的旧id是无法获取到相应对象。解决办法如下:

		//this.wv=(WebView)findViewById(R.id.ifree_brow_webview);
                int webviewID = getResources().getIdentifier("ifree_brow_webview", "id", getPackageName());
		this.wv = (WebView)findViewById(webviewID);
		

 这样获得ID就可以保证是正确的ID了

论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics