Android Studio 项目出现错误 "Missing Permission"
Android Studio projects are having an error "Missing Permission"
注意:我一直在做这个项目,不时地构建它。它工作正常,直到最近我的所有项目都开始显示“缺少权限错误”,但我已经在项目的 AndroidManifest 文件中提到了权限。
项目 1:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.firstproject">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<application
////other code
</manifest>
missing permission error in first project
为什么我需要权限/权限检查:
error-at(1)
error-at(2)
error-at(3)
error-at(4)
missing permission error
build.gradle (:app) (第一个项目):
dependencies {
implementation platform('com.google.firebase:firebase-bom:28.1.0')
implementation "androidx.cardview:cardview:1.0.0"
implementation "com.google.android.material:material:1.3.0"
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation 'com.firebaseui:firebase-ui-database:6.2.1'
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-analytics'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.google.firebase:firebase-database:20.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation 'androidx.navigation:navigation-fragment:2.3.5'
implementation 'androidx.navigation:navigation-ui:2.3.5'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'com.google.android.gms:play-services-maps:17.0.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.karumi:dexter:6.1.2'
implementation 'com.google.android.gms:play-services-location:18.0.0'
implementation 'com.google.android.gms:play-services-places:17.0.0'
implementation 'com.firebase:geofire-android:3.0.0'
}
同样的错误发生在我的第二个项目中。
第二个项目:
missing permission error in second project
AndroidManifest.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.driver">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//other stuff
项目构建日志:
Starting Gradle Daemon...
Gradle Daemon started in 3 s 90 ms
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/7.0.2/userguid/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 34s
如果我 运行 这个项目出现错误会怎样:
它不会征求我的许可,但会在“设置”->“应用程序”中显示许可
permission showing in the setting
我已经尝试过的:
- 重建项目
- 正在清理项目
- 正在升级 Gradle
- 正在删除项目并构建备份版本(一次提交还原,因为我使用 github)
这是一个简单的修复,Android studio 会自动生成一些带有 return 语句的代码。如果被授予,它将检查权限,然后将执行下一行代码,否则您将在运行时请求权限,如果被授予并重新运行相同的 yourgetLocationmethod();
经过数小时的研究和尝试新事物后,我发现我的 AndroidManifest.xml 没有合并文件,但我的所有项目都发生了这种情况。
我找不到发生这种情况的答案,但这就是 AndroidManifest.xml 中的权限不起作用的原因。
我为解决该问题所做的事情
- 删除位于 E:/Android Studio(自定义)的 Android Studio 目录
- 删除位于 C:/Users/UserName/.android 的 .android 目录(默认)
- 删除位于 C:/Users/UserName/.gradle 的 .gradle 目录(默认)
- 安装新的 Android Studio
在那之后之前的所有项目都运行良好
注意:
要查看目录(例如 android),请确保已启用“显示隐藏 files/folders”
注意:我一直在做这个项目,不时地构建它。它工作正常,直到最近我的所有项目都开始显示“缺少权限错误”,但我已经在项目的 AndroidManifest 文件中提到了权限。
项目 1:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.firstproject">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<application
////other code
</manifest>
missing permission error in first project
为什么我需要权限/权限检查:
error-at(1)
error-at(2)
error-at(3)
error-at(4)
missing permission error
build.gradle (:app) (第一个项目):
dependencies {
implementation platform('com.google.firebase:firebase-bom:28.1.0')
implementation "androidx.cardview:cardview:1.0.0"
implementation "com.google.android.material:material:1.3.0"
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation 'com.firebaseui:firebase-ui-database:6.2.1'
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-analytics'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.google.firebase:firebase-database:20.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation 'androidx.navigation:navigation-fragment:2.3.5'
implementation 'androidx.navigation:navigation-ui:2.3.5'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'com.google.android.gms:play-services-maps:17.0.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.karumi:dexter:6.1.2'
implementation 'com.google.android.gms:play-services-location:18.0.0'
implementation 'com.google.android.gms:play-services-places:17.0.0'
implementation 'com.firebase:geofire-android:3.0.0'
}
同样的错误发生在我的第二个项目中。
第二个项目: missing permission error in second project
AndroidManifest.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.driver">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//other stuff
项目构建日志:
Starting Gradle Daemon...
Gradle Daemon started in 3 s 90 ms
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/7.0.2/userguid/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 34s
如果我 运行 这个项目出现错误会怎样: 它不会征求我的许可,但会在“设置”->“应用程序”中显示许可 permission showing in the setting
我已经尝试过的:
- 重建项目
- 正在清理项目
- 正在升级 Gradle
- 正在删除项目并构建备份版本(一次提交还原,因为我使用 github)
这是一个简单的修复,Android studio 会自动生成一些带有 return 语句的代码。如果被授予,它将检查权限,然后将执行下一行代码,否则您将在运行时请求权限,如果被授予并重新运行相同的 yourgetLocationmethod();
经过数小时的研究和尝试新事物后,我发现我的 AndroidManifest.xml 没有合并文件,但我的所有项目都发生了这种情况。
我找不到发生这种情况的答案,但这就是 AndroidManifest.xml 中的权限不起作用的原因。
我为解决该问题所做的事情
- 删除位于 E:/Android Studio(自定义)的 Android Studio 目录
- 删除位于 C:/Users/UserName/.android 的 .android 目录(默认)
- 删除位于 C:/Users/UserName/.gradle 的 .gradle 目录(默认)
- 安装新的 Android Studio
在那之后之前的所有项目都运行良好
注意: 要查看目录(例如 android),请确保已启用“显示隐藏 files/folders”