我在安卓的libs文件夹中有多个库。当我尝试添加"Tapjoy"时,出现错误:
无法执行 DEX 方法 ID 不在 0 0xffff 65536 安卓问题 即将到来
而且,当我尝试配置构建路径并添加外部 jar 时,
java.lang.NoClassDefFoundError: com.tapjoy.TapjoyConnect
我被困在这个问题上。任何人都可以给我解决方案吗?
恭喜您达到了 65K 方法限制,您有两个选择:
a) 通过删除不必要的库/使用 ProGuard 来清理一些代码。
b) Multidex 解决方案,请按照以下步骤操作
- 确保您的 Android SDK 构建和 Android 支持存储库已更新到最新版本。
-
通过添加支持 dex 库并启用 multidex 来修改您的
build.gradle
android { compileSdkVersion 21 buildToolsVersion "21.1.0" defaultConfig { ... minSdkVersion 14 targetSdkVersion 21 ... // Enabling multidex support. multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.0' }
-
修改清单:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest>
p.s 如果您已经扩展了应用程序,那么只需覆盖 attachBaseContext 方法
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
欲了解更多信息:使用超过 65K 的方法构建应用程序