Android Studio会尝试执行具有回溯支持且minSdkVersion = 17

时间:2016-10-10 06:32:43

标签: android logback android-multidex

我正在使用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);
  }
}

0 个答案:

没有答案