我正在使用Android Studio 2.2编写Android应用
我定义了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);
}
}