Dexarchivemergerexception только при выпускеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Dexarchivemergerexception только при выпуске

Сообщение Anonymous »

Я разработал приложение, которое использует клиент Java, сгенерированный Swagger. Клиент находится в проекте под названием «API», в то время как приложение находится в проекте под названием «Приложение». Код> Все работает нормально. Кроме того, когда я пытаюсь запустить приложение на эмулированном или физическом устройстве запустить/запустить приложение '. Бег с отладчиком также работает. Даже когда я создаю проект через Buid/Gevenate Signed Bundle/Apk и выбираю опцию отладки, он работает.

Теперь. Сборка терпит неудачу, когда я пытаюсь создать подписанную сборку релиза. Следующие сообщения показывают: < /p>


вызван: java.lang.runtimeexception: com.android.builder.dexing.dexarchivemergerexexception: ошибка при объединении dex Архивы: [...] \ app \ build \ upermediates \ transforms \ dexbuilder \ release \ 54, [...] \ app \ build \ Intermediates \ Transforms \ Externallibsdexmerger \ Release \ 0, [...] \ app \ Build \ Intermediates \ Transforms \ dexbuilder \ Release \ 52.jar, [...] \ app \ build \ intermediates \ transforms \ dexbuilder \ release \ 53.jar < /p>
< /blockquote>




вызван: com.android.builder.dexing.dexarchivemererxexception: ошибка при объединении архивов DEX: [... ] \ App \ Build \ Intermediates \ Transforms \ DexBuilder \ Release \ 54, [...] \ App \ Build \ Intermediates \ Transforms \ ExternallibsDexmerger \ Release \ 0, [...] \ App \ Build \ Intermediates \ Transforms \ dexbuilder \ release \ 52.jar, [...] \ app \ build \ Intermediates \ Transforms \ dexbuilder \ Release \ 53.jar < /p>
< /blockquote>

< hr />


вызван: com.android.tools.r8.compilationFailedException: Компиляция не удалось завершить < /p>
< /blockquote>




вызван: com.android.tools.r8.utils.abortexception: ошибка: тип программы уже уже настоящее: io.swagger.client.apicallback < /p>
< /blockquote>

Я довольно новичок в разработке с Android Studio и Gradle. Я попробовал несколько решений о переполнении стека, которые уже предложили добавить некоторые библиотеки, но до сих пор никто из них не работал с моей проблемой. < /P>

Для меня особенно подозрительно, что последняя ошибка Сообщение указывает на io.swagger.client.apicallback . < /p>

Может ли это иметь какое -либо отношение к тому факту, что оба настройки. Оба выглядят так:
rootproject.name = "swagger-java-client" < /code>. Это единственная строка в файле, но, насколько я знаю, настройки. Я не могу помнить, что меняет его, так что это странно, что он показывает "Swagger-Java-Client". Это нормально? Это единственное событие, которое я мог найти, ссылаясь на это. В моем build.gradle < /code> для «приложения» -project есть эта часть: < /p>

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
< /code>

Однако удаление ничего не изменило. < /p>

Обновление 2 < /h2>
при поиске "io.swagger", так как находит только это: < /p>

< /p>

при обретении" io.swagger.client.apicallback ", как только находит это: < /p>
< /p>

Обновление 3 < /h2>

Как уже предложило, я попытался добавить < /p>

android {
defaultConfig {
multiDexEnabled true
}
}
< /code>

и добавление Android.enabled8 = false < /code>, но это тоже не помогло. < /p>

Вот мои сборки. />
build.gradle (Module: API) (генерируется Swagger): < /p>

apply plugin: 'idea'
apply plugin: 'eclipse'

group = 'io.swagger'
version = '1.0.0'

buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
}

repositories {
jcenter()
}

if(hasProperty('target') && target == 'android') {

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
minSdkVersion 14
targetSdkVersion 25
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

// Rename the aar correctly
libraryVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.aar')) {
def fileName = "${project.name}-${variant.baseName}-${version}.aar"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}

dependencies {
provided 'javax.annotation:jsr250-api:1.0'
}
}

afterEvaluate {
android.libraryVariants.all { variant ->
def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
task.description = "Create jar artifact for ${variant.name}"
task.dependsOn variant.javaCompile
task.from variant.javaCompile.destinationDir
task.destinationDir = project.file("${project.buildDir}/outputs/jar")
task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
artifacts.add('archives', task);
}
}

task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}

artifacts {
archives sourcesJar
}

} else {

apply plugin: 'java'
apply plugin: 'maven'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

install {
repositories.mavenInstaller {
pom.artifactId = 'swagger-java-client'
}
}

task execute(type:JavaExec) {
main = System.getProperty('mainClass')
classpath = sourceSets.main.runtimeClasspath
}
}

dependencies {
compile 'io.swagger:swagger-annotations:1.5.21'
compile 'com.squareup.okhttp:okhttp:2.7.5'
compile 'com.squareup.okhttp:logging-interceptor:2.7.5'
compile 'com.google.code.gson:gson:2.8.2'
compile 'org.threeten:threetenbp:1.3.5'
testCompile 'junit:junit:4.12'
}
< /code>

build.gradle (module: app): < /p>

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'

repositories {
maven { url 'https://maven.fabric.io/public' }
}

android {
compileSdkVersion 28
defaultConfig {
applicationId "projectName"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "0.1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
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'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation fileTree(dir: '../api/build/libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.squareup.okhttp:okhttp:2.7.5'
api project(path: ':api')
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.8'
implementation 'org.jetbrains:annotations-java5:15.0'
}


Подробнее здесь: https://stackoverflow.com/questions/540 ... on-release
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»