NoSuchFieldError:类Lcom / disdemo / R $ id中没有类型I的静态字段listView1;或者它的超类

时间:2015-04-03 22:06:03

标签: android

我有{1}中的listView1的module1(在Android Studio中)(存在于module1的res中)。此模块的MainActivity是从同一个Android Studio项目中的另一个module2启动的。

我尝试删除module1并再次创建一个具有相同res和java文件的新模块。我仍然遇到同样的问题。

8 个答案:

答案 0 :(得分:162)

我认为您在库和模块中都有相同名称的布局,或者使用重复的资源ID扩展多个xml布局。

答案 1 :(得分:42)

我的其他模块中也有activity_main.xml布局,所以我收到了NoSuchField错误。我在我的一个模块中重命名了布局并且工作正常。

答案 2 :(得分:12)

在这两个模块中,您都有一个activity_main.xml。请重命名一个文件。

答案 3 :(得分:6)

你已经使用了多个模块并给出了任何xml布局的相同名称,然后给出了这个错误,所以请重命名你的xml布局。

答案 4 :(得分:0)

就我而言,标识符是不同的。我按了Build > Rebuild Project。这是因为我将res/layout分成了几个子文件夹,并且AS停下来注意到XML的更改。有关详细信息,请参见Rebuild required after changing xml layout files in Android Studio

答案 5 :(得分:0)

这种错误只发生一次,但是有一个string资源。我在转换文件中配置了字符串,但在默认的字符串资源文件中没有配置,因此导致崩溃。

答案 6 :(得分:0)

对我来说,保卫规则有效。我有两个级别的保护者。首先是我的依赖关系,然后是我的应用程序。必须在我的依赖项中做到这一点。

保留R. 内容。

-keepclassmembers class **.R$* {
    public static <fields>;
}

保留所有本机方法名称及其类的名称。

-keepclasseswithmembernames class * {
    native <methods>;
}

答案 7 :(得分:-1)

我在使用 viewBinding 时遇到了这个问题。类名称为 SearchViewHolder,布局资源名称为 search_view_holder。这导致了混乱和崩溃。