我正在研究当前的位置跟踪,但是当我尝试构建apk时,它正在显示错误,而建筑APK.I我没有遇到问题。
错误:.dex文件中的方法引用数不能超过64K。 了解如何在https://developer.android.com/tools/building/multidex.html
解决此问题错误:任务':app:transformClassesWithDexForDebug'执行失败。
com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle .process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_101 \ bin \ java.exe''以非零退出值2结束
答案 0 :(得分:1)
在build.gradle
添加此行,然后重试:
multiDexEnabled true
答案 1 :(得分:0)
您是否尝试将堆大小调整添加到build.gradle文件中?例如,这会将dexing的最大堆大小设置为4GB,并且它也将启用 multiDexEnabled选项。
android {
...
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
multiDexEnabled true
}
}
答案 2 :(得分:0)
嗨,我们有两种处理multidex的方法,
我们应该首先在gradle中添加这段代码
defaultConfig {
applicationId "com.example"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
我们可以在Application类中使用此代码的第二种方式
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
感谢它可能对您有所帮助
答案 3 :(得分:0)
您的问题可以有两种解决方案: 1.在开发位置跟踪应用程序时,您可能已经包含了包含多个库的整个Google Play服务。请尝试在您的gradle文件中包含地图服务,例如
compile 'com.google.android.gms:play-services-maps:8.3.0'
如果上述方法不起作用,请尝试修改模块级build.gradle文件配置以包含支持库并启用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'
}
某些依赖项的方法超过了64k的限制。因此,您必须引入称为“MULTIDEX SUPPORT”的支持。
http://frogermcs.github.io/MultiDex-solution-for-64k-limit-in-Dalvik/
Multidex将允许在应用程序中使用任意数量的方法(以及相关的第三方库)。
即使棒棒糖及以上版本支持应用程序拥有任意数量的方法,pre-lollipop版本仅支持SINGLE DEX。因此,在安装应用程序时必须安装(必需)multidex。这样,您的应用甚至可以在棒棒糖前版本上运行。
Android Studio project works on Lollipop but does not work on Kitkat
由于multidex会尝试从dex文件中提取所有资源,这会使你的应用程序变慢一些,但是只要你打开你的应用程序完成这个过程就可以正常工作。 此外,在创建签名的apk后,它不会给您任何问题。