android - Android 项目中的库太多?

标签 android gradle build.gradle

我遇到了一些问题,包括项目中的 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/

相关文章:

java - 如何在Java中使用非标准变量名来生成XML标签?

android - 无法构建项目,gradle 有问题吗?

java.lang.NoClassDefFoundError : Failed resolution of: Lcom/google/android/gms/common/util/zzq;

android-studio - 如何使 gradle.properties 机器独立

android - 如何在android中显示与Android市场使用的相同的弹出窗口?

android - 在不启动 Activity 的情况下读取当前 fragment 中的搜索查询

java - 使用网络资源进行货币转换器

安卓测试 : use Dagger2 + Gradle

android - Android Studio小写 Assets 文件夹中包含的文件夹名称

gradle - Gradle Task依赖关系执行问题