在Android 8 Oreo上无法获得WAKE_LOCK权限

Gre*_*Dan 5 permissions android

我的应用已<uses-permission android:name="android.permission.WAKE_LOCK" />添加到AndroidManifest.xml.但是,获取锁定的调用会使PowerManager.PARTIAL_WAKE_LOCKOreo设备上的应用程序崩溃.

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: java.lang.SecurityException: Neither user 10094 nor current process has android.permission.WAKE_LOCK.
Run Code Online (Sandbox Code Playgroud)

Gre*_*Dan 16

您的应用可能正在使用新版本的ACRA库.在新版本中,他们添加<uses-permission android:name="android.permission.WAKE_LOCK" android:maxSdkVersion="25" />到lib AndroidManifest.xml文件中.该android:maxSdkVersion="25"被静默合并到主应用程序AndroidManifest.xml文件,因此应用程序不具有WAKE_LOCK对奥利奥设备的权限.该解决方案将添加tools:node="replace"到您的uses-permission声明中.

例如<uses-permission android:name="android.permission.WAKE_LOCK" tools:node="replace" />.

更新:在ACRA库的最新版本中,删除了不幸的"功能" .

  • 我已经浪费了两天时间,如果这是正确的答案,你就是上帝! (2认同)
  • 是的,这是正确的答案,现在您正式成为上帝。:D (2认同)