`

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了

分享到:
评论
2 楼 liqiong0327 2016-01-06  
解决了困扰我2天的问题。
1 楼 liqiong0327 2016-01-06  
大神啊,给跪了!!!!

相关推荐

    AndroidGUI27中findViewById返回null的快速解决办法

    AndroidGUI27中findViewById返回null的快速解决办法 AndroidGUI27中findViewById返回null的快速解决办法是Android应用开发中常见的问题。findViewById是Android中获取界面元素对象的方法,但是有时候它会返回null,...

    Android中findViewById返回为空null的快速解决办法

    Android中findViewById返回为空null的快速解决办法是指在Android开发中,使用findViewById方法来获取视图控件时,返回为空null的解决方法。在Android中,findViewById方法是用于获取视图控件的ID号,并将其转换为...

    Android-一个根据布局文件自动生成findViewById代码的androidstudio插件

    在Android应用开发中,`findViewById`是一个常见的任务,用于在Activity或Fragment中查找XML布局文件中的视图元素。然而,手动编写这样的代码既耗时又容易出错。为了解决这个问题,开发者通常会利用Android Studio的...

    Android中findViewById获取控件返回为空问题怎么解决

    Android中findViewById获取控件返回为空问题解决方案 在 Android 开发中,findViewById 是一个常用的方法来获取布局中的控件元素,但是有时候我们可能会遇到 findViewById 返回为空的问题,这是什么原因造成的呢?...

    android getActivity.findViewById获取ListView 返回NULL的方法

    在控件ID正确的情况下,检查是否在实例化布局...View view = null; @Override @SuppressLint(HandlerLeak) public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    Android注解省去findviewbyid

    在Android应用开发中,我们经常需要通过`findViewById`方法来获取布局文件中的UI元素,以便进行事件处理或数据显示。然而,频繁地使用`findViewById`会使得代码变得冗长且不易维护,尤其是在大型项目中。为了解决这...

    简单实现Android的findviewbyid IOC框架

    在Android开发中,`findViewById`方法是用于查找布局文件中定义的UI元素的常用方法,但随着应用复杂度增加,代码中充斥着大量的`findViewById`调用,这使得代码维护变得困难。为了解决这个问题,引入了依赖注入...

    Unity3D游戏引擎实现在Android中打开WebView的实例

    // Unity中会调用这个方法,从而打开WebView public void StartWebView(String str) { Intent intent = new Intent(mContext, WebViewActivity.class); this.startActivity(intent); } } ``` 接下来,创建另一...

    Android findviewbyId代码生成器

    在Android应用开发中,`findViewById()`方法是开发者用于获取布局文件中定义的UI元素的常用方式。这个过程通常需要手动编写对应的代码,特别是在界面复杂的项目中,这可能会导致大量重复和繁琐的工作。为了提高开发...

    告别findViewById的Demo

    在Android开发中,findViewById是一个常见的操作,用于查找布局文件中定义的UI元素。然而,这个过程繁琐且容易出错,特别是在大型项目中。为了解决这个问题,开发者们引入了各种优化技术,其中一种就是利用注解来...

    一个简单的注解实现 findViewById 和 setOnClickListener 的例子

    在Android开发中,findViewById和setOnClickListener是两个非常常见的操作。它们分别用于查找布局文件中的视图控件和为这些控件设置点击监听器。然而,传统的做法往往需要编写大量的重复代码,降低了开发效率。为了...

    Android代码-Android-Studio-Plugins-cn

    Android Studio 插件 传播:heart: 关于 在GitHub上看到Android-Studio-Plugins 项目并有了想法,这里想做一份比较全面的Android Studio开发插件整理,希望可以帮助更多的 Android 开发者来加快开发速度,也希望...

    当你的项目不再使用 ButterKnife 了,你该怎么处理已经注解的代码?RemoveButterKnife 一个可以把 注解代码还原为 findViewById 样式的一个AndroidStudio 插件.zip

    当你的项目不再使用 ButterKnife 了,你该怎么处理已经注解...RemoveButterKnife 一个可以把 注解代码还原为 findViewById 样式的一个AndroidStudio 插件。.zip,一个android工作室插件,可以帮助移除butterknife的使用

    android studio 插件FindViewByMe,代码及jar包

    这个插件主要用于帮助开发者快速找到布局中的控件,减少了手动查找和编写`findViewById`方法的时间。 `FindViewByMe`插件的使用非常简单,通常只需几步即可完成安装和应用。首先,开发者需要下载`FindViewByMe`的...

    Android Studio 插件android-butterknife-zelezny.jar

    然而,手动添加这些注解是一项繁琐的工作,"android-butterknife-zelezny.jar"插件的出现正好解决了这个问题。 使用这个插件的过程很简单。首先,你需要将`android-butterknife-zelezny.jar`添加到Android Studio的...

    eclipse android 代码生成插件源码

    首先,`findViewById`方法是在Android开发中用于从布局文件中查找并返回UI组件对象的。通常,我们需要在每个Activity或Fragment中手动为每个控件调用这个方法,然后将其赋值给对应的变量。这个过程既繁琐又容易出错...

Global site tag (gtag.js) - Google Analytics