LOCAL_STATIC_JAVA_LIBRARIES +=AMap_Location_Settings
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=
AMap_Location_Settings:libs/AMap_Location_V6.1.0_20220414.jar
看一下是否关闭混淆优化器,没有这个配置,编译时会报下面的错误:
解决方法:
在Android.mk文件中配置:
LOCAL_PROGUARD_ENABLED := disabled LOCAL_SRC_FILES := $(call all-java-files-under, src)注意:混淆优化器
混淆器的作用不仅仅是保护代码,它也有精简编译后程序大小的作用。由于以上介绍的缩短变量和函数名以及丢失部分信息的原因, 编译后 jar 文件体积大约能减少25% ,这对当前费用较贵的无线网络传输是有一定意义的。
所以需要通过新建配置文件proguard.flags
ProGuard工具是用于压缩,优化,混淆,预检我们的代码,作用是可以移除代码中的无用类,字段,方法和属性使得打包后APP的体积缩小;同时可以对其进行混淆命名,降低代码的易读性,保障APP的安全性;
- 在proguard.flags中配置:
-dontwarn okio.**
-dontwarn okhttp3.**
-dontwarn com.amap.**
-dontwarn com.autonavi.**
-dontwarn com.loc.dv.**
-dontwarn com.loc.**
//下面添加需要需要混淆的类名或包名
-keep class com.amap.api.maps.**{*;}
-keep class com.autonavi.amap.mapcore.*{*;}
-keep class com.amap.api.trace.**{*;}
-keep class com.autonavi.**{*;}
-keep class com.amap.api.location.**{*;}
-keep class com.amap.api.fence.**{*;}
-keep class com.loc.**{*;}
-keep class com.autonavi.aps.amapapi.model.**{*;}
-keep class com.amap.api.location.**{*;}
- 在配置Android.mk文件引入proguard.flags文件
LOCAL_PROGUARD_FLAG_FILES := proguard.flags



