Android 应用程序无法在所有设备中运行

Android 应用程序无法在所有设备中运行,android,android-permissions,Android,Android Permissions,我制作了一个音乐播放器应用程序。它在某些设备上正常运行,但在某些设备上崩溃。我不能理解这个错误。我怎么修理它?我所理解的只是第一个错误,那就是我必须为read phone state权限取得单独的权限 错误1: java.lang.RuntimeException: Unable to create service beatbox.neelay.beatbox.MediaService: java.lang.SecurityException: Neither user 10103 nor cu

我制作了一个音乐播放器应用程序。它在某些设备上正常运行,但在某些设备上崩溃。我不能理解这个错误。我怎么修理它?我所理解的只是第一个错误,那就是我必须为read phone state权限取得单独的权限

错误1:

java.lang.RuntimeException: Unable to create service beatbox.neelay.beatbox.MediaService: java.lang.SecurityException: Neither user 10103 nor current process has android.permission.READ_PHONE_STATE.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2804)
at android.app.ActivityThread.access$1900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1404)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
Caused by: java.lang.SecurityException: Neither user 10103 nor current process has android.permission.READ_PHONE_STATE.
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy.listenForSubscriber(ITelephonyRegistry.java:544)
at android.telephony.TelephonyManager.listen(TelephonyManager.java:2514)
at beatbox.neelay.beatbox.MediaService.callStateListener(MediaService.java:612)
at beatbox.neelay.beatbox.MediaService.onCreate(MediaService.java:126)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2794)
... 9 more
这是用户提交的错误

错误2:

Writing exception to parcel
  java.lang.SecurityException: 
    External path: /storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1481126994678: Neither user 10199 nor current process has android.permission.WRITE_EXTERNAL_STORAGE.
      at android.app.ContextImpl.enforce(ContextImpl.java:1443)
      at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1475)
      at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:675)
      at com.android.providers.media.MediaProvider.enforceCallingOrSelfPermissionAndAppOps(MediaProvider.java:6793)
      at com.android.providers.media.MediaProvider.checkAccess(MediaProvider.java:5570)
      at com.android.providers.media.MediaProvider.ensureFileExists(MediaProvider.java:4381)
      at com.android.providers.media.MediaProvider.getAlbumArtOutputUri(MediaProvider.java:5834)
      at com.android.providers.media.MediaProvider.makeThumbInternal(MediaProvider.java:5976)
      at com.android.providers.media.MediaProvider.getThumb(MediaProvider.java:5897)
      at com.android.providers.media.MediaProvider.openFile(MediaProvider.java:5466)
      at android.content.ContentProvider.openAssetFile(ContentProvider.java:1427)
      at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1607)
      at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1673)
      at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:430)
      at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:313)
      at android.os.Binder.execTransact(Binder.java:458)

我在manifest和Java中都拥有对Android m的访问权限,我没有使用任何写外部存储的功能,但它也显示了此错误。

您必须添加此权限

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


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


必须向AndroidManifest.xml文件添加此权限

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


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


对于AndroidManifest.xml文件

来说,这可能是因为一些设备运行的是Android 6.0或更高版本,而其他设备则不是

如果设备运行的是Android 5.1或更低版本,或者你的应用程序的目标SDK是22或更低版本:如果你在清单中列出了一个危险的权限,用户在安装应用程序时必须授予该权限;如果他们不授予该权限,则系统根本不会安装该应用程序

如果设备运行的是Android 6.0或更高版本,并且您的应用程序的目标SDK为23或更高版本:应用程序必须在清单中列出权限,并且必须在应用程序运行时请求所需的每个危险权限。用户可以授予或拒绝每个权限,即使用户拒绝权限请求,应用程序也可以在有限的功能下继续运行


这可能是因为一些设备运行的是Android 6.0或更高版本,而其他设备则不是

如果设备运行的是Android 5.1或更低版本,或者你的应用程序的目标SDK是22或更低版本:如果你在清单中列出了一个危险的权限,用户在安装应用程序时必须授予该权限;如果他们不授予该权限,则系统根本不会安装该应用程序

如果设备运行的是Android 6.0或更高版本,并且您的应用程序的目标SDK为23或更高版本:应用程序必须在清单中列出权限,并且必须在应用程序运行时请求所需的每个危险权限。用户可以授予或拒绝每个权限,即使用户拒绝权限请求,应用程序也可以在有限的功能下继续运行


在Android>=6.0上,我们必须请求运行时权限

步骤1:加载项AndroidManifest.xml文件

第二步:请求许可

步骤3:请求权限时处理回调

勾选这个:


编辑:我想你在安卓6.0上有

,我们必须请求运行时权限

步骤1:加载项AndroidManifest.xml文件

第二步:请求许可

步骤3:请求权限时处理回调

勾选这个:


编辑:我想你有

检查更新问题该应用程序在某些android m设备上工作,但在某些android L和m设备上它崩溃检查更新问题该应用程序在某些android m设备上工作,但在某些android L和m设备上它崩溃了。我没有使用任何写外部存储功能,但如果你能指导的话,我正在使用读存储如果我有任何错误,请检查我的更新答案。有人已经解决了,我想这就是你要找的。先生,正如你说的,第二个错误已经解决了,但是你能在第一个错误中指导我吗?我没有使用任何写外部存储的功能,但我正在使用读存储。如果你能指导我任何错误,这将有助于全面检查我的更新答案。有人已经解决了,我想这就是你正在寻找的。先生,正如你所说的,第二个错误已经解决,但是你能在第一个引导我。请考虑检查许可。Android 6需要使用它们的权限。请考虑检查许可。Android 6>需要许可才能使用它们。。