我的项目正在运行,一切都很好,但不知道突然发生的事情,当我想要构建我的项目时,我遇到了错误。这是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.
由于这两个文件都是自动生成的,我无法做任何事情:(
./gradlew clean assembleDebug
清理项目,但什么都没发生。我在构建脚本中有这个类路径但是如上所述它正在工作......
dependencies {
classpath 'com.android.tools.build:gradle:1.0.1'
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
}
任何建议都将不胜感激。感谢。
答案 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
}