#android #android-multidex
#Android #android-multidex
Вопрос:
Я получаю сообщение об ошибке после создания проекта, подобного..
Ошибка: Ошибка преобразования байт-кода в dex: Причина: com.android.dex.DexException: несколько файлов dex определяют Lokhttp3/internal/http/RealResponseBody; Ошибка: com.android.dex.DexException: несколько файлов dex определяют Lokhttp3/internal/http/RealResponseBody; Ошибка: в com.android.dx.слияние.DexMerger.readSortableTypes(DexMerger.java:661) Ошибка: в com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616) Ошибка: в com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598) Ошибка: в com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) Ошибка: в com.android.dx.merge.Ошибка DexMerger.merge(DexMerger.java:198): в com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61) Ошибка: в com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36) Ошибка: в java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) Ошибка: в java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) Ошибка: в java.util.concurrent.ForkJoinPool $WorkQueue.RunTask(ForkJoinPool.java:1056) Ошибка: в java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java: 1692) Ошибка: на java.util.concurrent.Ошибка ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157): не удалось выполнить задачу ‘: app:transformDexArchiveWithDexMergerForDebug’.
com.android.build.api.transform.Исключение TransformException: com.android.dex.DexException: несколько файлов dex определяют Lokhttp3 /internal /http/ RealResponseBody; Информация: СБОЙ СБОРКИ за 2m 51s Информация: 15 ошибок Информация: 0 предупреждений Информация: Смотрите Полный вывод в консоли
это мой файл gradle сборки.
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.kamran.logingreentheme"
minSdkVersion 17
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
useLibrary 'org.apache.http.legacy'
multiDexEnabled true
configurations {
all {
// exclude module: 'httpclient'
resolutionStrategy {
force 'junit:junit:4.11'
force 'com.android.support:support-annotations:28.0.0'
}
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/menu'] } }
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.volley:volley:1.1.1'
//implementation 'org.apache.httpcomponents:httpcore:4.4.1'
// implementation 'org.apache.httpcomponents:httpmime:4.2.3'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.googlecode.json-simple:json-simple:1.1.1'
implementation 'com.android.support:multidex:1.0.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support:support-annotations:28.0.0'
}
вещи, которые я пробовал
1.clean ,rebuild
2.invalidate catch restart
3.multiplexEnabled **true** also add dependencies:implementation 'com.android.support:multidex:1.0.3'
кто-нибудь может повторно исправить мою ошибку? кто-нибудь может объяснить, почему я получаю эту ошибку??
Комментарии:
1. ваш проект переопределяет класс приложения?
2. @d-feverx нет.но я установил это-> android:name=»android.support.multidex.MultiDexApplication» в мой файл menifest под тегом application
3. просто попробуйте с классом приложения, developer.android.com/studio/build/multidex
4. @d-feverx что делать, если я не хочу переопределять.но я редактирую свой файл menifest, чтобы установить android:name в теге <application> следующим образом:android:name=»android.support.multidex.MultiDexApplication»
Ответ №1:
Добавить в gradle.property
эту строку:
org.gradle.jvmargs=-Xmx1024m
После этого очистите и перестройте проект.