已定义资源条目com.crashlytics.android.build_id

时间:2015-03-19 10:36:14

标签: java android build android-gradle crashlytics

我的项目正在运行,一切都很好,但不知道突然发生的事情,当我想要构建我的项目时,我遇到了错误。这是Gradle输出:

/Users/admin/Desktop/android/MY-Project/build/intermediates/res/project/debug/values/values.xml:265: error: Resource entry com.crashlytics.android.build_id is already defined.
/Users/admin/Desktop/android/MY-Project/build/intermediates/res/project/debug/values/com_crashlytics_build_id.xml:9: Originally defined here.

由于这两个文件都是自动生成的,我无法做任何事情:(

  1. 我试图通过Build>“清理项目”来清理项目,但什么都没发生。
  2. 我试图通过./gradlew clean assembleDebug清理项目,但什么都没发生。
  3. 我试图通过文件>“无效缓存/重新启动”使Android Studio的缓存失效但没有发生任何事情。
  4. 我甚至重新启动了我的f.laptop,但是当我构建项目时仍会出现同样的问题。
  5. 我在构建脚本中有这个类路径但是如上所述它正在工作......

    dependencies {
            classpath 'com.android.tools.build:gradle:1.0.1'
            classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
        }
    

    任何建议都将不胜感激。感谢。

5 个答案:

答案 0 :(得分:27)

我有一个具有两种风格的应用程序:Debug和Release,分别具有两个清单和两个不同的软件包com.myapp.release和com.myapp.debug。

从Fabric.io迁移到Firebase Crashalytics后,出现Gradle警告 出现重复com_crashlytics_build_id.xml

/home/.../app/build/generated/fabric/res/flavor1/debug/values/com_crashlytics_build_id.xml  [string/com.crashlytics.android.build_id] /home/.../app/build/generated/crashlytics/res/flavor2/debug/values/com_crashlytics_build_id.xml: Error: Duplicate resources

修复:build.gradle

删除

dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
  }

删除

apply plugin: 'io.fabric'

答案 1 :(得分:17)

我有同样的问题。

我的错误是我在gradle上添加了fabric插件和firebaseCrashlytics插件。 (原因:插件内部版本ID重复崩溃)

您必须修复选择的A和B插件。

A: ... .... //IPAddress localAddr = IPAddress.Any; IPAddress localAddr = IPAddress.Parse(GetLocalIPAddress()); .... .. public static string GetLocalIPAddress() { var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork && ip.ToString().Contains("192.168.")) { return ip.ToString(); } } throw new Exception("Local IP Address Not Found!"); }

B:apply plugin: 'com.google.firebase.crashlytics

答案 2 :(得分:7)

我遇到了同样的问题,我的一个依赖项错误地通过craslytics的auto genereted xml文件添加了com.crashlytics.android.build_id。

这是一个图书馆项目并删除:

library/src/main/assets/crashlytics-build.properties
library/src/main/res/values/com_crashlytics_export_strings.xml

为我修好了。

答案 3 :(得分:5)

修复不同的io.fabric.tools:gradle版本

应用和库中的不同io.fabric.tools:gradle版本对我造成了这种情况。

我在应用的build.gradle

中提到了以下内容
classpath 'io.fabric.tools:gradle:1.19.2'

以下是图书馆的build.gradle

classpath 'io.fabric.tools:gradle:1+'

我将两者都更改为以下内容以修复它:

classpath 'io.fabric.tools:gradle:1.19.2'

PS:我们需要更好的错误消息。作为程序员,当错误消息不仅很糟糕时,我们会浪费大量时间,但就像在这种情况下一样,是彻头彻尾的误导。

答案 4 :(得分:0)

除面料外也将其删除

crashlytics {
   enableNdk true
 }