MultiDexApplication无法识别

JMR*_*ies 21 android gradle android-multidex

尝试在我的应用程序中使用MultiDexApplication,但是当我尝试使用它扩展应用程序活动时,无法识别该类.

这是我的build.gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
    defaultConfig {
        applicationId 'com.myapp'
        minSdkVersion 10
        targetSdkVersion 21
        versionCode 115
        versionName '4.8'
    }

    buildTypes {
        debug {
            debuggable true
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            debuggable false
            runProguard true
            zipAlign true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

    lintOptions {
        checkReleaseBuilds false
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.google.android.gms:play-services:6.1.11'

    compile 'com.android.support:appcompat-v7:21.0.0'

    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile project(':facebook')
}
Run Code Online (Sandbox Code Playgroud)

你可以看到我正在编译21,使用最新的构建工具,以及最新的谷歌播放服务和支持库.

有没有人得到这个工作?

Ale*_*pov 38

MultiDexApplication类不是appcompat-v7库的一部分.它是在一个单独的jar(称为android-support-multidex)中发布的.

/ sdk/extras/android/support/multidex/library/libs下找到android-support-multidex.jar(可从支持库的修订版21获得)并将其复制到项目的libs文件夹中.

更新(2014年11月5日):
jar现在可以在中央存储库中找到:

dependencies {
  ...
  compile 'com.android.support:multidex:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此处.

  • 请通过maven/gradle引用multidex库:dependencies {compile'c​​om.android.support:multidex:1.0.0'} //注意,在您阅读本文时,库版本号可能会更大. (2认同)

jos*_*olf 20

虽然这个问题很老,但是当我尝试将不同的模块组合在一起作为API <21的一个APK时,我在多模块设置中出现了这个错误.我已经重构了AndroidX,但是multidex文档还没有提到AndroidX.

如果您使用的是AndroidX,请确保替换旧的multidex依赖项

compile 'com.android.support:multidex:1.0.3'
Run Code Online (Sandbox Code Playgroud)

用新的

implementation 'androidx.multidex:multidex:2.0.0'
Run Code Online (Sandbox Code Playgroud)

  • 将此行添加到清单android:name =“ androidx.multidex.MultiDexApplication” (3认同)
  • 耶稣基督,谷歌,你为什么不更新你的文档:https://developer.android.com/studio/build/multidex ?? (2认同)