在我的Android项目build.gradle
文件中,我有:
dependencies {
compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
compile 'org.apache.commons:commons-collections4:4.0'
}
当我运行aapt dump badging
时,我看到了:
native-code: 'commons-io-2.4.jar'
显然,commons-io不是本机代码,但Android Gradle插件认为它是。如何告诉Android Gradle插件此库不包含本机代码?还好奇它是如何决定这个库是什么架构的?由于APK不会安装在基于英特尔的Android模拟器上,因此似乎选择了多种arm
,它会出现错误:INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
。
答案 0 :(得分:2)
您可能正在使用不正确的Commons IO库。尝试:
您使用的http://mvnrepository.com/artifact/commons-io/commons-io/2.4似乎特定于version,似乎是桌面应用。
答案 1 :(得分:0)
我曾经遇到过将commons-io:2.4
依赖于我的构建代码的麻烦。问题是Gradle本身带有commons-io
的版本。在我的情况下,它可以修复:
sourceSets {
main {
compileClasspath = configurations.compile.minus files("$gradle.gradleHomeDir/lib/commons-io-1.4.jar")
}
}
获取了此片段
但请注意,建议不要在Gradle中使用不同版本的库。
您可以在此处找到有关此内容的更多信息:https://discuss.gradle.org/t/unable-to-use-commons-io-2-4-because-gradle-forces-the-loading-of-commons-io-1-4/8021
这可能完全不相关:)