2017-08-03 197 views
1

我正在将我的应用程序集成到Android AOSP源代码中进行编译。我遇到了如下问题:错误:Dex写入阶段:classes.dex的ID太多。尝试使用multi-dex

错误:Dex写入阶段:classes.dex有太多的ID。尝试使用多指数

它在android studio中工作正常。我的应用程序设置是这样的:

public class App extends MultiDexApplication{ 
    @Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 
    } 

设置在mainifest.xml

android:name=".App" 

dependencies{ 
    compile 'com.android.support:multidex:1.0.1' 
} 
defaultConfig { 
    multiDexEnabled true 
} 

我找到了解决方法,在这里: How to enable mulit dex ,when building apk in AOSP?

,但没有奏效。

我的MK文件看起来像:

LOCAL_PROGUARD_ENABLED := disabled 
LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := multidex-1.0.1:libs/multidex-1.0.1.aar 

任何帮助吗?提前致谢。

+0

您是否找到解决方案?我正面临类似的问题... –

+0

是的。我做到了。在以下两行添加到您的mk文件中。 LOCAL_DX_FLAGS:= - multi-dex --main-dex-list = $(mainDexList)--minimal-main-dex LOCAL_JACK_FLAGS + = - 多分布本地 – user3034559

+0

所以你使用的是NDK? –

回答

0

将下面两行添加到您的mk文件中。它应该工作。

LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex 
    LOCAL_JACK_FLAGS += --multi-dex native 
+0

** mk **文件优于CMake吗? –