Kat*_*lon 3 android android-gradle-plugin android-multidex
以下是我的gradle文件。我收到一个 MultiDexException。我不想启用 multidex 因为我的应用程序没有那么复杂。所以我确信我一定是做错了什么。有人会看看我的 gradle 文件并指出我可以做些什么来避免这个问题吗?
错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
Run Code Online (Sandbox Code Playgroud)
等级:
buildscript {
? repositories {?
maven { url 'https://maven.fabric.io/public' }?
}? ?
dependencies {?
classpath 'io.fabric.tools:gradle:1.+'
? }
? }
? apply plugin: 'com.android.application'?
apply plugin: 'io.fabric'
? apply plugin: 'com.google.gms.google-services'? ?
repositories {
? maven { url 'https://maven.fabric.io/public' }?
}? ? ?
android {
? compileSdkVersion 23?
buildToolsVersion "23.0.1"
? ? defaultConfig {
? applicationId "com.company.app.android"?
minSdkVersion 14?
targetSdkVersion 23
? versionCode 1
? versionName "1.0"
? }?
buildTypes {
? release {?
minifyEnabled false?
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
? }
? }
? ? ? }
? ? dependencies {
? compile project(path: ':cloud', configuration: 'android-endpoints')?
compile('com.twitter.sdk.android:twitter:1.8.0@aar') {
? transitive = true;
? }
? ? compile 'com.android.support:design:23.0.1'
? compile 'com.android.support:recyclerview-v7:23.0.1'
? compile 'com.android.support:cardview-v7:23.0.1'
? compile 'com.squareup.okhttp:okhttp:2.5.0'
? compile 'com.squareup.picasso:picasso:2.5.2'
? compile 'com.path:android-priority-jobqueue:1.1.2'
? compile 'com.google.android.gms:play-services-gcm:8.1.0'
? compile 'com.google.android.gms:play-services-appindexing:8.1.0'
? compile 'com.google.android.gms:play-services-location:8.1.0'
? }?
Run Code Online (Sandbox Code Playgroud)
我不想启用 multidex 因为我的应用程序没有那么复杂
您直接依赖于 11 个工件。您对其他人有间接依赖关系(例如,play-services-location
pull in play-services-maps
),加上任何可能被设置为由您的 Fabric 插件提供的依赖关系的东西。
简而言之,您的应用程序相当复杂。碰巧的是,您没有编写太多的复杂性。
我能做些什么来避免这个问题?
使用更少/更小的依赖项。
您已经在使用细粒度的 Play 服务 SDK 依赖项,否则您很久以前就会达到 DEX 限制。
您可能会考虑使用其中一种可用的方法计数工具,例如这个 Gradle 插件,以更好地了解哪些库对您的成本有所贡献。
归档时间: |
|
查看次数: |
3130 次 |
最近记录: |