生成带有android map utils库的签名apk时出错

时间:2016-10-27 16:05:13

标签: android gradle apk google-maps-api-2

由于我添加了此依赖项,因此无法生成已签名的APK。奇怪的是,构建/构建APK可以工作,但构建/生成签名的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
    }
}

1 个答案:

答案 0 :(得分:1)

当你尝试生成签名的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