我知道这可能是一个愚蠢的问题,我之前提到了所有类似的问题,但不幸的是我可以解决这个问题。很可能是我的Manifest.xml文件中存在问题。
当我尝试访问位置时,应用程序崩溃
这是我的manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.tt.test" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".sTest"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.test.tt.test.sService">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </service>
<service android:name="com.test.tt.test.sServiceRequest" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
</application>
当我运行它时抛出此错误
java.lang.SecurityException: Neither user 11029 nor current process has android.permission.ACCESS_COARSE_LOCATION.
与其他权限类似。我在清单文件中看不到任何错误。帮助赞赏
答案 0 :(得分:14)
如果您在Android Marshmallow及以上设备上运行:
如果设备运行的是Android 6.0或更高版本,并且应用的目标SDK是23或更高,则应用程序不仅必须列出清单中的权限,还必须在应用程序运行时请求其所需的每个危险权限。
更多信息:
http://developer.android.com/training/permissions/requesting.html
和
http://developer.android.com/guide/topics/security/permissions.html#normal-dangerous
答案 1 :(得分:12)
这意味着您的清单文件中包含一些错误的信息或格式错误的信息,这就是您的应用无法识别您的权限的原因。只需确保已使用任何格式错误的数据清理ANDROIDMANIFEST文件。
它可以工作,所有权限都应该在Application标签
之外答案 2 :(得分:3)
在manifest标记
下方移动uses-permission外部应用程序答案 3 :(得分:3)
移动权限部分用&#34解决了我的问题;用户或当前进程都没有android.permission.READ_PHONE_STATE&#34;。非常感谢这个论坛的每个人。 关于其他人,我的更改如下:
<强>原始强>
{group-id}
更改:强>
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
<activity android:name=".NfcRead"></activity>
</application>
答案 4 :(得分:0)
此异常与Android 6及更高版本中的运行时权限系统有关。位置许可属于危险许可[check here],因此您必须满足以下2个最低要求才能处理这些许可:
在清单中声明以下2个权限(这些权限必须在应用程序标签之外)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION " />
使用 checkSelfPermission() 在运行时检查授予的权限,并使用 requestPermissions() strong>(如果尚未授予)。
如果您已经完成上述两项操作,但仍然出现错误,请检查以下内容:
希望这会有所帮助:-)