Reputation: 8287
I've setup MultiDex, but doesn't seem to be working on my case, what might I be missing? Had the same setup on some app, worked there.
Also, I'm using the new Android Studio 3.0 Canary 1, if that might have an effect.
MANIFEST
<application
android:name=".Global"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
GRADLE
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
multiDexEnabled true
useLibrary 'org.apache.http.legacy'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
...
compile 'com.android.support:multidex:1.0.1'
}
APPLICATION CLASS
public class Global extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
MultiDex.install(this);
}
}
ERRORS
Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbrq;
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbrq;
Error: at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:608)
Error: at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:563)
Error: at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:545)
Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167)
Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:194)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.mergeDexes(DexArchiveMergerCallable.java:66)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:54)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:37)
Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error: at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error: at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error: at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbrq;
Upvotes: 1
Views: 4284
Reputation: 5349
gradle file ..official link
android {
compileSdkVersion 22
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 14 //lower than 14 doesn't support multidex
targetSdkVersion 22
// Enabling multidex support.
multiDexEnabled true
}
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
chnage in your activity.
public class YouApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Upvotes: 0
Reputation: 69754
create one class
public class Multi_Dex extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}}
imports this library
compile 'com.android.support:multidex:1.0.1'
set multltidexenavbled true in your gradle like this
defaultConfig {
multiDexEnabled true
minSdkVersion 19
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
im your manifiest file define your apllication name properrty like this
android:name="com.pkg.Multi_Dex"
Upvotes: 0
Reputation: 381
Try this
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
MultiDex.install(this); this line remove from on create
Upvotes: 2
Reputation: 88
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
useLibrary 'org.apache.http.legacy'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
multiDexEnabled true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:multidex:1.0.1'
}
Upvotes: 0