如何保持谷歌地图混淆?

时间:2017-10-24 11:03:38

标签: android google-maps obfuscation android-proguard

我已在我的应用程序中实施了Google Maps(Google API)。所以我在我的应用程序中添加了ProGuard文件。添加Proguard文件后,地图未打开,并显示白色空白屏幕。

这是我的Proguard代码:

-keep class * implements com.google.android.gms.maps { *; }
-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }

我试过这个,但它没有用。

1 个答案:

答案 0 :(得分:0)

Google Maps API也会使用其他一些东西,这些东西会在混淆过程中引起问题,比如自定义Parcelables和序列化。这些规则应该有效:

-keepclassmembers class * implements android.os.Parcelable {
    static *** CREATOR;
}

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

来源:https://github.com/googlemaps/android-samples/blob/master/ApiDemos/app/proguard-rules.pro

@Fakher在评论中说:

另请注意,您的API密钥必须正确无误,如果您已请求API密钥并将其添加到您的应用程序中,则Google仅会向您显示可见的地图。