#android #logback #android-multidex
#Android #logback #android-multidex
Вопрос:
Я пишу приложение для Android с Android Studio 2.2.
Я определил minSdkVersion 17
и добавил следующие библиотеки для использования logback-android:
compile 'com.github.tony19:logback-android-core:1.1.1-6'
compile 'com.github.tony19:logback-android-classic:1.1.1-6'
compile 'ch.qos.logback:logback-classic:1.1.7'
После этого процесс сборки работает, но когда я пытаюсь выполнить на устройстве (виртуальном или реальном устройстве), процесс прерывается со следующим исключением.
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lch/qos/logback/classic/AsyncAppender;
Если я определяю minSdkVersion 19
, что никаких проблем нет, приложение создается и выполняется плавно на устройстве, но мне нужна minSdkVersion.
Вы можете легко воспроизвести проблему, просто создав простое приложение, добавив упомянутые библиотеки и определив minSdkVersion 17
.
Вы знаете, как это можно решить?
Заранее спасибо.
ОБНОВЛЕНО
Прикрепление файла build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.dcsoft.multidexfailurewithlogback"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
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:appcompat-v7:23.3.0'
testCompile 'junit:junit:4.12'
compile 'com.github.tony19:logback-android-core:1.1.1-6'
compile 'com.github.tony19:logback-android-classic:1.1.1-6'
compile 'ch.qos.logback:logback-classic:1.1.7'
}
ОБНОВЛЕНИЕ 2
Добавление моего MainActivity.java:
package com.dcsoft.multidexfailurewithlogback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private static final Logger LOGGER = LoggerFactory.getLogger(MainActivity.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Комментарии:
1. пожалуйста, загрузите файл buil.gradle
2. очистите свой проект из Build> Clean Project, чем использовать File> Inavlidate Cache / Restart
3. Спасибо, Брахми, но это не работает, по крайней мере, в моем случае.
4. Спасибо, Вишал. Я загрузил файл.
5. Читая документ, я обнаружил, что вам нужно добавить
compile 'org.slf4j:slf4j-api:1.7.21'
. Это устранит ошибку.