我尝试从本教程(https://github.com/googlemaps/android-samples)学习Google Map API。 但是,当我运行应用程序时,我收到错误消息。 这个问题可以说是一个简单的问题,但我是使用android studio和Google Map API的初学者。所以我有任何想法来解决这个问题....
请给我一些建议。
错误消息
'任务执行失败':app:transformClassesWithDexForDebug' com.android.build.api.transform.TransformException: java.util.concurrent.ExecutionException:com.android.dex.DeIndexOverFlowException: 方法ID不在[0,0xffff]中:65536
这就是我所做的。
1)下载zip文件。 (https://github.com/googlemaps/android-samples)
2)打开AndroidStudio和Import项目 使用'导入项目(Eclipse ADT,Gradle等)'
3)将Google MAP API密钥放入'gradle.properties'文件中。
4)运行
答案 0 :(得分:1)
你有太多的方法。 dex只能有65536种方法。
您需要包含multi-dex
在构建gradle中添加这些行
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
同样在您的Manifest中,将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>
答案 1 :(得分:0)
我假设您指的是ApiDemos和googlemaps / android-samples下的教程
compile 'com.google.android.gms:play-services-maps'
compile 'com.google.android.gms:play-services'
第二个将处理所有播放服务apis而不是特定的。所以你面临65K限制问题。
尝试对googlemaps / android-samples下的所有样本使用单独的api(如com.google.android.gms:play-services-maps
)