百度地图开发(2):签名,混淆,32位和64位相关
1. 签名相关: keystore, platform.pk8
《把Android源码中的秘钥对转换为keystore的方法》
2. 混淆相关
因为外网限制等原因,我是在工程下mm编译的apk,安装开启应用的时候发现报了很多baidumap相关类找不到method的错误。出现这一错误的原因是因为工程编译通过mk文件开启了混淆,我们需要手动将baidumap相关类忽略掉。
proguard.flags
# Required for ActionBarSherlock -keep class android.support.v4.app.** { *; } -keep interface android.support.v4.app.** { *; } -keep class com.actionbarsherlock.** { *; } -keep interface com.actionbarsherlock.** { *; } -keepattributes *Annotation* -libraryjars libs/baidumap/BaiduLBS_Android.jar #-dontwarn com.baidu.mapapi.** #-dontwarn com.baidu.** #-dontwarn vi.com.gdi.bgl.** -keep class com.baidu.mapapi.** { *; } -keep public class * extends com.baidu.mapapi.** -keep class com.baidu.** { *; } -keep public class * extends com.baidu.** -keep class vi.com.gdi.bgl.** { *; } -keep public class * extends vi.com.gdi.bgl.**
3. Android.mk文件
################################################## include $(CLEAR_VARS) LOCAL_MODULE := libBaiduMapSDK_map_v3_7_1 LOCAL_MODULE_TAGS := optional ifeq ($(strip $(TARGET_ARCH)),arm64) LOCAL_SRC_FILES := libs/armeabi64/libBaiduMapSDK_map_v3_7_1.so else LOCAL_SRC_FILES := libs/armeabi/libBaiduMapSDK_map_v3_7_1.so endif LOCAL_MODULE_CLASS := SHARED_LIBRARIES LOCAL_MODULE_SUFFIX := .so include $(BUILD_PREBUILT) ##################################################
上面这段进行的是预编译,出来的so与原先第三方提供过来的so内容不变。