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)

查看小黑屋的源码:
捕获.PNG
大概是因为 Android 9 上限制了反射使用 hiddenapi 吧..尝试使用 https://github.com/anggrayudi/android-hidden-api
捕获.PNG
也会崩溃,一样的报错.

只好使用标准的获取图标方法了..

packageItemInfo.loadIcon(packageManager);
  • 在静默安装应用时会崩溃

小黑屋在安装应用时会开启一个前台服务,前台服务在 Android 9 上必须申请普通权限:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

炸机修复.