使用 android 地图实用程序库生成签名的 apk 时出错

Error generating signed apk with android map utils library

由于添加了此依赖项,我无法再生成签名的 APK。奇怪的是,Build/Build APK 有效,但 Build/Generate 签名的 APK 失败并显示以下行:

Warning:com.google.maps.android.clustering.ClusterManager: can't find superclass or interface com.google.android.gms.maps.GoogleMap$OnCameraIdleListener
Warning:com.google.maps.android.clustering.ClusterManager: can't find referenced class com.google.android.gms.maps.GoogleMap$OnCameraIdleListener
Warning:com.google.maps.android.kml.KmlRenderer: can't find referenced method 'void setZIndex(float)' in program class com.google.android.gms.maps.model.Marker
Warning:there were 4 unresolved references to classes or interfaces.
Warning:there were 1 unresolved references to program class members.
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.
Error:java.lang.RuntimeException: java.io.IOException: Please correct the above warnings first.
Error:java.io.IOException: Please correct the above warnings first.
Information:BUILD FAILED

这是我的模块 build.gradle 依赖部分:

apply plugin: 'com.android.model.library'
apply plugin: 'com.google.gms.google-services'

dependencies {
    compile 'com.google.android.gms:play-services-maps:9.0.2'
    compile 'com.google.maps.android:android-maps-utils:0.4+'
}

model
{
    [etc...]
}

这是项目一级:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle-experimental:0.8.0'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

当您尝试生成已签名的 apk(发布版本)时,可能是 Proguard(它正在工作),您可以通过添加

来解决这个问题
-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**

但通常这已经在地图库中完成,我建议您在尝试上述解决方案之前使用最新版本的地图库

com.google.android.gms:play-services-maps:9.8.0