应用程序安装在 Android 12 台设备上失败

App installation fails in Android 12 devices

我们的应用程序在迁移到 targetSdkVersion 31 后无法安装。在尝试查找问题时,我们发现一个库正在使用 FLASHLIGHT 权限,我们在安装时遇到此错误:

Installation failed due to: 'Failed to commit install session 130765275 with command cmd package install-commit 130765275. Error: -127: Package com.xxxx.yyyy.zzzz attempting to declare permission android.permission.FLASHLIGHT in non-existing group android.permission-group.HARDWARE_CONTROLS'

库的清单文件中使用的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<permission
    android:name="android.permission.FLASHLIGHT"
    android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
    android:protectionLevel="normal" />

这个问题有解决办法吗?

android.permission-group.HARDWARE_CONTROLS 在 targetSdkVersion 31 中被弃用。解决方法是通过

删除清单中库使用的权限
<permission
      android:name="permissionOne"
      tools:node="remove"
      tools:selector="com.example.lib1">

tools:node="remove"

如果应用程序在您的任何库中使用,将从该应用程序中删除权限