我正在尝试将Google Placed库集成到我的应用中。 添加播放服务依赖项之后,我得到错误,说我需要使用multi dex,因为方法引用的数量超过65536.
然后我按照指南here添加了多dex支持,然后我开始收到此错误(transformexception)。
据我所知,这是因为多个依赖项有一些共同的类,需要将它们排除在外。
我做了一些关于SO的研究并且已经排除了一些。但是,我仍然得到同样的错误,但这次只是为了一个新的类名。
错误说:
错误:任务执行失败 ':应用程序:transformClassesWithJarMergingForDebug'
com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目: 组织/ xmlpull / V1 / XmlPullParser.class
这是我的模块级gradle脚本:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "xx.exampleapp.app"
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:3.8.1'
compile ('com.android.support:appcompat-v7:24.0.0'){
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
exclude group: 'com.android.support'
}
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile ('com.android.support:design:24.0.0'){
exclude group: 'com.android.support'
}
compile ('com.google.android.gms:play-services:9.0.2'){
exclude group: 'com.google.guava'
}
compile 'org.robolectric:shadows-multidex:3.1.2'
}
有什么想法吗?
答案 0 :(得分:0)
根据此thread,您可以通过下载最新版本的API来消除错误:任务执行失败':app:transformClassesWithJarMergingForDebug' 。
您也可以尝试启用multidex并使用此related issue中列出的打包选项。
packagingOptions {
exclude 'META-INF/maven/com.squareup.moshi/moshi/pom.properties'
exclude 'META-INF/maven/com.squareup.moshi/moshi/pom.xml'
exclude 'META-INF/maven/com.google.protobuf/protobuf-java/pom.xml'
exclude 'META-INF/maven/com.google.protobuf/protobuf-java/pom.properties'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'
exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'
exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.properties'
exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.xml'
exclude 'META-INF/maven/com.annimon/stream/pom.properties'
exclude 'META-INF/maven/com.annimon/stream/pom.xml'
exclude 'META-INF/maven/net.iharder/base64/pom.xml'
exclude 'META-INF/maven/net.iharder/base64/pom.properties'
pickFirst 'gpsoauth.properties'
pickFirst 'google/protobuf/any.proto'
pickFirst 'google/protobuf/field_mask.proto'
pickFirst 'google/protobuf/plugin.proto'
pickFirst 'google/protobuf/compiler/plugin.proto'
pickFirst 'google/protobuf/api.proto'
pickFirst 'google/protobuf/descriptor.proto'
pickFirst 'google/protobuf/wrappers.proto'
pickFirst 'google/protobuf/type.proto'
pickFirst 'google/protobuf/struct.proto'
pickFirst 'google/protobuf/timestamp.proto'
pickFirst 'google/protobuf/source_context.proto'
pickFirst 'google/protobuf/duration.proto'
pickFirst 'google/protobuf/empty.proto'
}
希望这有帮助!