在android.support.v7.appcompat.R.java下使用search_plate复制资源ID

时间:2018-01-31 05:39:42

标签: android

构建我的应用程序时出现此错误:

01-31 13:28:58.594 E/AndroidRuntime(10369): FATAL EXCEPTION: main
01-31 13:28:58.594 E/AndroidRuntime(10369): Process: com.example.app, PID: 10369
01-31 13:28:58.594 E/AndroidRuntime(10369): java.lang.NoSuchFieldError: No static field framelayout_content of type I in class Lcom/sdk/sample/R$id; or its superclasses (declaration of 'com.sdk.sample.R$id' appears in /data/app/com.example.app

当我搜索“framelayout_content”

的resourceId时

在android.support.v7.appcompat.R.java文件中:

public static final int search_plate = 0x7f0f0057;

并在我的模块(com.sdk.sample.R.java)的R文件中:

public static int framelayout_content=0x7f0f0057;

ids重复! 在最后的R文件(com.example.app.R.java)中它只有:

public static final int search_plate=0x7f0f0057;

framelayout_content消失了,导致错误!

任何人都可以提供帮助吗?

PS: 我试图重命名framelayout_content它没有帮助。

以下是我的项目结构:

在settings.gradle中:

include ':app', ':Module'

在应用下:

dependencies {
    compile project(': Module')
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    testCompile 'com.android.support.test:runner:1.0.1'
    testCompile 'com.android.support.test.espresso:espresso-core:3.0.1'
    compile 'com.android.support:multidex:1.0.1'

}
模块下的

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:25.4.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.squareup:otto:1.3.8'
}

2 个答案:

答案 0 :(得分:2)

通过重命名布局文件之一来解决问题,因为包含framelayout_content的布局文件与模块中的布局文件具有相同的名称。感谢@IntelliJ Amiya

答案 1 :(得分:1)

  

01-31 13:28:58.594 E / AndroidRuntime(10369):   java.lang.NoSuchFieldError:无静态字段

NoSuchFieldError只能在运行时发生,如果类的定义发生了不兼容的更改。那么在项目中找到 DUPLICATE XMLS 。只需重命名其中一个。然后 Clean-Rebuild and Run

<强> FYI

public static final int search_plate = 0x7f0f0057;
  

Android R.java是aapt自动生成的文件(Android资源   包装工具)包含所有资源的资源ID   res /目录。