Unity3D中 Android插件findviewbyid返回null的解决办法
最近在给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了
相关推荐
zouxin 2020-06-16
燕十二的BLOG 2020-06-10
Firstsight 2020-05-17
heqiang0 2020-05-10
唠叨的老黑 2020-05-08
Kafeidu 2020-03-05
Firstsight 2019-12-04
yinbaoshiguang 2011-08-18
zouxin 2014-03-22
zzlyym 2017-11-06
zouxin 2015-08-04
zhangmiaoping 2019-07-01
zzlyym 2017-05-09
zouxin 2019-06-28
yhhwatl 2019-06-26
HappyKocola 2019-06-20