适配 Android 9
Android 9 已经发布,是时候开始适配了.
修改 ./app/build.gradle
compileSdkVersion 28
defaultConfig {
targetSdkVersion 28
}
然后编译,模拟器运行,发现以下问题:
- 在 Android 9 上读取应用图标时候会崩溃
08-12 01:17:50.181 7481-7490/web1n.stopapp A/libc: FORTIFY: pthread_mutex_destroy called on a destroyed mutex (0xe5528f00)
Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 7490 (FinalizerDaemon), pid 7481 (web1n.stopapp)
查看小黑屋的源码:
大概是因为 Android 9 上限制了反射使用 hiddenapi 吧..尝试使用 https://github.com/anggrayudi/android-hidden-api
也会崩溃,一样的报错.
只好使用标准的获取图标方法了..
packageItemInfo.loadIcon(packageManager);
- 在静默安装应用时会崩溃
小黑屋在安装应用时会开启一个前台服务,前台服务在 Android 9 上必须申请普通权限:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
炸机修复.