添加';amazonaws:aws java sdk:1.10.1';
我正在运行Android Studio,在我执行以下操作之前,我的应用程序一直运行得非常完美。当我在gradle文件中添加“compile'com.amazonaws:aws java sdk:1.10.1”时,我在重新构建项目时收到以下警告 警告:依赖项公用记录:忽略公用记录:1.1.3 用于调试,因为它可能与提供的内部版本冲突 安卓。如果有问题,请用jarjar重新包装,以便 更改类包 警告:Dependency org.apache.httpcomponents:httpclient:4.3.6是 忽略调试,因为它可能与内部版本冲突 由Android提供。如果有问题,请重新包装 jarjar更改类包 警告:依赖项公用记录:忽略公用记录:1.1.3 用于发布,因为它可能与内部版本冲突 由Android提供。如果有问题,请重新包装 jarjar更改类包 警告:Dependency org.apache.httpcomponents:httpclient:4.3.6是 在发布时忽略,因为它可能与内部版本冲突 由Android提供。如果有问题,请重新包装 jarjar更改类 当我运行应用程序时,我会收到上述4条警告和运行移动应用程序时出现的1条错误: 意外的顶级异常:添加';amazonaws:aws java sdk:1.10.1';,java,amazon-web-services,android-studio,build.gradle,Java,Amazon Web Services,Android Studio,Build.gradle,我正在运行Android Studio,在我执行以下操作之前,我的应用程序一直运行得非常完美。当我在gradle文件中添加“compile'com.amazonaws:aws java sdk:1.10.1”时,我在重新构建项目时收到以下警告 警告:依赖项公用记录:忽略公用记录:1.1.3 用于调试,因为它可能与提供的内部版本冲突 安卓。如果有问题,请用jarjar重新包装,以便 更改类包 警告:Dependency org.apache.httpcomponents:httpclient:4.
com.android.dex.DexIndexOverflowException:方法ID不在[0]中, 0xffff]:65536 at com.android.dx.merge.dexmmerge$6.updateIndex(dexmmerge.java:502)位于 com.android.dx.merge.dexmerge$idmerge.mergeSorted(dexmerge.java:277) 位于com.android.dx.merge.dexmerge.mergeMethodId(dexmerge.java:491) 位于com.android.dx.merge.dexmerge.mergeDexes(dexmerge.java:168) com.android.dx.merge.dexmmerge.merge(dexmmerge.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:process'命令 “C:\Program Files\Java\jdk1.7.0\u 79\bin\Java.exe”已完成 非零出口值2 更新: nirs回答了这个问题的原因。然而,它仍然没有编译并给出相同的错误 这是我当前的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应用程序所需的所有内容,但它仍然没有编译。当您添加Amazon SDK时,您的应用程序似乎达到了Android允许的最大方法数(超过65K)。 请参见此处,了解如何为multidex配置应用程序:
当您添加Amazon SDK时,您的应用程序似乎达到了Android允许的最大方法数(超过65K)。 请参见此处,了解如何为multidex配置应用程序:
我将回答这个问题,并解释为什么我的gradle会出错。(黑客帮我弄明白了原因)。这不是一个多指标问题。 在我的gradle文件中,我需要编译Android SDK而不是Java SDK。 以下是我所做的更改: build.gradle之前
...
compile 'com.amazonaws:aws-java-sdk:1.10.1'
...
build.gradle之后
...
compile 'com.amazonaws:aws-android-sdk-core:2.2.4'
compile 'com.amazonaws:aws-android-sdk-s3:2.2.4'
...
我的程序现在运行得很好!希望这有帮助。最后,要知道这是否真的是一个多索引问题,请使用此程序告诉您:来自GitHub。我将回答此问题并解释gradle出错的原因。(黑客帮我弄明白了原因)。这不是一个多指标问题。 在我的gradle文件中,我需要编译Android SDK而不是Java SDK。 以下是我所做的更改: build.gradle之前
...
compile 'com.amazonaws:aws-java-sdk:1.10.1'
...
build.gradle之后
...
compile 'com.amazonaws:aws-android-sdk-core:2.2.4'
compile 'com.amazonaws:aws-android-sdk-s3:2.2.4'
...
我的程序现在运行得很好!希望这有帮助。最后,要知道这是否真的是一个多索引问题,请使用此程序告诉您:来自GitHub。谢谢。我真的很想限制链接中讨论的依赖关系,但我不确定要去哪里才能做到这一点。我会排除依赖项的某些部分吗?或者你知道什么网站可以帮我做这件事吗?除非你有你不真正使用的依赖项/可以剥离并只获取相关代码,否则我建议转到multi-dex路径:谢谢。我真的很想限制链接中讨论的依赖关系,但我不确定要去哪里才能做到这一点。我会排除依赖项的某些部分吗?或者你知道什么网站可以帮我解决这个问题吗?除非你有依赖关系,你不真正使用/可以剥离并只获取相关代码,否则我建议转到multi-dex路径: