我遇到了一些问题,包括项目中的 4 个库。 Microsoft 人脸检测/识别、Google Play 服务、libUVCamera 和 Firebase。
为了简化问题,我做了一个项目叫做library aggregation。它唯一拥有的就是添加到其中的四个库。每当包含任何 3 个库时,一切正常。添加第四个(无论是哪个)将导致以下错误:
错误:任务 ':app:transformClassesWithDexForDebug' 执行失败。
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2
Stack overflow 上的一些人建议方法太多(最大值为 65k),显然“minifyEnabled true”会有所帮助。我曾尝试清理该项目,但没有成功。我正在寻找有关如何继续解决该问题的任何想法。我也试过 multiDex ...但没有成功。
想知道 Android 开发人员通常会处理此类问题吗?你通常如何处理 Android studio 中的大型库?
提示:构建需要 1 分 28 秒……如果它有用的话。
这是我的 build.gradle 文件: 任何帮助将不胜感激。
Build.gradle(模块:app)
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.benjaminlize.libraryaggregation"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.microsoft.projectoxford:face:0.5.0'
compile project(':libuvccamera')
}
问候!
最佳答案
我认为问题是 compile 'com.google.android.gms:play-services:8.3.0'
。
Google 已将播放服务分解为单独的库,您可以单独包含这些库,而不是将所有内容都放在一起。尝试仅包括您实际需要的那些部分。
https://developers.google.com/android/guides/setup
我的猜测是现在所有的播放服务都有很多功能。
关于android - Android 项目中的库太多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226750/