Unity3D中 Android插件findviewbyid返回null的解决办法
16lz
2021-01-26
最近在给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了
更多相关文章
- Android之反编译技术
- 关于Android工程从eclipse迁移至android studio的过程
- Android开发-从硬件到APP(一) : 单独编内核驱动模块
- cocos2dx 3.x系列之Mac环境编译Android(安卓)apk须知
- android导入外部数据库到项目中的使用方法
- Android7.1.2源码解析系列】Android编译系统翻译------Android_B
- 音视频学习之NDK交叉编译基础
- Android直播开发之旅(16):使用FFmpeg保存网络流到本地文件
- 编译时注解之butterknife的简单实现