构建、包体与兼容性问题
本节汇总构建与兼容性相关的常见问题:APK 体积、混淆/压缩、Android Studio 版本兼容、Chromebook 适配等。
减小 APK 体积
可通过“按 ABI / 屏幕密度拆分 APK”的方式减少单个 APK 体积。可参考 Android 官方文档 Build Multiple APKs,并在 module 级 build.gradle 中配置 splits。
启用 shrink-code(minifyEnabled = true)后运行时异常
若在 App 的 build.gradle 中设置 minifyEnabled 为 true,请确保在 proguard-rules.pro 中添加必要的保留规则,否则可能出现运行时异常。
示例(节选):
properties
-dontwarn com.foxit.sdk.**
-keep class com.foxit.sdk.**{ *;}
-dontwarn com.microsoft.rightsmanagement.**
-keep class com.microsoft.rightsmanagement.** { *;}
-dontwarn com.microsoft.aad.adal.**
-keep class com.microsoft.aad.adal.** { *;}
-dontwarn com.edmodo.cropper.**
-keep class com.edmodo.cropper.** { *;}
-dontwarn org.bouncycastle**
-keep class org.bouncycastle.** { *;}
适配 Chromebook
支持。需在 AndroidManifest.xml 中为 application 节点设置:
xml
android:name="com.foxit.uiextensions.FoxitApplication"
如需自定义 Application,请继承 FoxitApplication。
兼容 Android Studio 3.2(较旧 IDE)
若项目仍使用 Android Studio 3.2 且无法升级,构建 Demo 时可能遇到构建错误。可按以下思路调整:
- 将 Demo 工程
build.gradle中的com.android.tools.build:gradle版本下调到 3.3.3; - 将
gradle-wrapper.properties的distributionUrl调整为gradle-4.10.1-all.zip对应版本。