【发布时间】:2015-09-06 12:35:10
【问题描述】:
我正在运行 Android Studio,并且我的应用程序一直运行良好,直到我执行以下操作。当我将“compile 'com.amazonaws:aws-java-sdk:1.10.1'”添加到我的 gradle 文件时,我在重新构建项目时收到以下警告。
警告:依赖 commons-logging:commons-logging:1.1.3 被忽略 用于调试,因为它可能与提供的内部版本冲突 由安卓。如有问题,请用jarjar重新打包到 更改类包
警告:依赖 org.apache.httpcomponents:httpclient:4.3.6 是 忽略调试,因为它可能与内部版本冲突 由安卓提供。如有问题,请重新包装 jarjar 更改类包
警告:依赖 commons-logging:commons-logging:1.1.3 被忽略 发布,因为它可能与内部版本冲突 由安卓提供。如有问题,请重新包装 jarjar 更改类包
警告:依赖 org.apache.httpcomponents:httpclient:4.3.6 是 发布时忽略,因为它可能与内部版本冲突 由安卓提供。如有问题,请重新包装 jarjar 更改类
当我运行应用程序时,我收到 4 个类似上述警告,当我运行我的移动应用程序时收到 1 个错误:
意外的顶级异常:
com.android.dex.DexIndexOverflowException: 方法 ID 不在 [0, 0xffff]: 65536 在 com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502) 在 com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277) 在 com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491) 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) 在 com.android.dx.command.dexer.Main.run(Main.java:246) 在 com.android.dx.command.dexer.Main.main(Main.java:215) 在 com.android.dx.command.Main.main(Main.java:106) 错误:执行失败 对于任务':mobile:dexDebug'。
我认为这是这里的主要错误:
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:进程'命令 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' 完成 非零退出值 2
更新: nirs 回答了这个问题的原因。但是,它仍然没有编译并给出相同的错误。
这是我当前具有 MultiDex 功能的 gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.android.uamp"
minSdkVersion 21
targetSdkVersion 22
versionCode 2
versionName "1.1"
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
abortOnError true
}
dexOptions {
preDexLibraries = false
}
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
}
}
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services-cast:7.5.0'
compile 'com.google.android.support:wearable:1.2.0'
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:cardview-v7:22.0.0'
compile 'com.android.support:mediarouter-v7:22.0.0'
compile(name: 'CastCompanionLibrary-debug', ext: 'aar')
compile 'com.github.amlcurran.showcaseview:library:5.0.0'
compile 'com.amazonaws:aws-java-sdk:1.10.1'
compile 'com.android.support:multidex:1.0.1'
}
在我的主要活动中,我添加了这个:
public class UAMPApplication extends MultiDexApplication
而不是这个:
public class UAMPApplication extends Application
我已经添加了拥有 MultiDex 应用程序所需的所有内容,但它仍然无法编译。
【问题讨论】:
标签: java amazon-web-services android-studio build.gradle