我对Android编程比较陌生,我正在尝试创建一个Google Maps项目。我在Android Studio中使用了模板选项,并添加了API的密钥。
我没有添加任何自己的代码并保留模板代码,因为我只是想运行代码并查看它的样子,但是,当我尝试运行此代码时,我一直收到多个dex错误在模拟器上导致构建失败。我收到此错误是很奇怪的,因为我根本没有添加任何代码,而是使用了Google地图模板从Android Studio中获得的内容。
任何人都知道为什么这个错误出现在一个全新的项目上?我看到的错误粘贴在下面。
错误:.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_91 \ bin \ java.exe''以非零退出值2结束
答案 0 :(得分:4)
如下所述:
您可能正在使用编译com.google.android.gms编译所有播放服务API:play-services:9.2.0' ...现在我们可以选择性地编译API& #39; s避免dex限制为64K。对于Google地图,请使用com.google.android.gms:play-services-maps:9.2.0 ... - Loki Jul 1 at 19:01
Loki的回答很有效,而且很简单。
答案 1 :(得分:2)
答案 2 :(得分:0)
问题是你目前有很多方法。 dex只能有65536种方法。您可以通过编辑build.gradle文件来尝试启用multiDex。
|=>
另外,oops作为您在清单中提到的海报,您还需要添加您正在使用multidex支持库中的multidex类。
android {
//stuff
defaultConfig {
...
// Enable multiDex support.
multiDexEnabled true
}
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
答案 3 :(得分:0)
更改Gradle构建配置以启用multidex
android {
compileSdkVersion 23
buildToolsVersion "24.0.0 rc2"
defaultConfig {
applicationId "com.try.app"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
在清单中,将Multidex支持库中的MultiDexApplication类添加到应用程序元素中。
<?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>
注意:访问https://developer.android.com/studio/build/multidex.html了解详情。
答案 4 :(得分:0)
在defaultConfig中将属性multiDexEnabled设置为true。当方法引用增加65k的限制时,会发生此错误。查看Google Play服务API。
android{
...
defaultConfig {
...
multiDexEnabled true
}
...
}
这是开始使用Google Maps Android API
的好资源答案 5 :(得分:0)
我删除了Loki建议的依赖项,但它确实有效。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.google.android.gms:play-services-maps:9.4.0'
}
答案 6 :(得分:0)
对于那些尝试了上述所有方法但均失败的人。尝试在build.gradile文件中将mini sdk版本更改为21。对我来说是16岁,当我将其更改为21岁时,multidex错误就消失了。
minSdkVersion 21