Android Studio 项目出现错误“缺少权限”
Posted
技术标签:
【中文标题】Android Studio 项目出现错误“缺少权限”【英文标题】:Android Studio projects are having an error "Missing Permission" 【发布时间】:2021-10-16 01:39:03 【问题描述】:注意:我一直在研究这个项目,并时不时地构建它。它工作正常,直到最近我的所有项目都开始显示“缺少权限错误”,但我已经在 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)
【问题讨论】:
您需要申请权限developer.android.com/training/permissions/requesting 【参考方案1】:这很容易解决,Android Studio 会自动生成一些带有 return 语句的代码。如果授予然后将检查权限,将执行下一行代码,否则如果授予您在运行时请求权限并重新运行相同的 yourgetLocationmethod();
This link will be helpful
【讨论】:
【参考方案2】:经过数小时的研究和尝试新事物后,我发现我的 AndroidManifest.xml 没有合并文件,而且我的所有项目都在发生这种情况。
我找不到发生这种情况的答案,但这就是 AndroidManifest.xml 中的权限不起作用的原因。
我为解决这个问题所做的事情
-
删除 E:/Android Studio (custom) 处的 Android Studio 目录
删除位于 C:/Users/UserName/.android 的 .android 目录(默认)
删除位于 C:/Users/UserName/.gradle 的 .gradle 目录(默认)
安装新的 Android Studio
在那之后所有以前的项目都运行良好
注意: 要查看目录(例如 .android),请确保启用“显示隐藏文件/文件夹”
【讨论】:
以上是关于Android Studio 项目出现错误“缺少权限”的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio运行出现项目 错误:非法字符:“ufeff”
Android 项目导入Android Studio 总是会出现错误: Plugin with id 'com.android.application' not found
xml文件中的文本不完整,导致新创建的Android Studio项目出现错误
android studio安卓项目出现Error: Default Activity Not Found错误无法编译的解决方案