我在 android 的 libs 文件夹中有多个库。当我尝试添加“Tapjoy”时,出现错误:
无法执行 dex 方法 id 不在 0 0xffff 65536 android 问题来了
并且,当我尝试配置构建路径并添加外部 jar 时,
java.lang.NoClassDefFoundError: com.tapjoy.TapjoyConnect
我被困在这个问题上。任何人都可以给我解决方案吗?
恭喜您已达到 65K 方法限制,您有两种选择:
a) 通过删除不必要的库/使用 ProGuard 来清理一些代码。
b) Multidex 解决方案,请按照以下步骤操作
build.gradle
通过添加支持 dex 库并启用 multidex 来修改您的
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>
ps 如果您已经扩展了 Application 然后只需覆盖 attachBaseContext 方法
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
了解更多信息: 使用超过 65K 方法构建应用程序