Unity+Android Plugin中的resouce id问题

参考网址:http://www.twodee.org/blog/?p=4951

 

Unity安卓项目,如果你的java代码中使用了R.layout.yourView这种形式的资源id,那在运行时是肯定会报错的:

08-13 12:27:21.407: W/System.err(13486): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.yyy/com.xxx.yyy.Splash}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030002

原因在于你的eclipse工程编译时,R类是编译器帮你生成的,而Unity编译apk时,又重新编译了一遍,两个过程的资源根本就不相同,当然会出现找不到对应资源的问题了。解决方法是使用动态调用。

以下形式的代码

setContentView(R.layout.splash);

修改为如下形式:

setContentView(getResources().getIdentifier("splash", "layout", getPackageName()));

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据