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

我已经尝试过的:

  1. 重建项目
  2. 正在清理项目
  3. 正在升级 Gradle
  4. 正在删除项目并构建备份版本(一次提交还原,因为我使用 github)

这是一个简单的修复,Android studio 会自动生成一些带有 return 语句的代码。如果被授予,它将检查权限,然后将执行下一行代码,否则您将在运行时请求权限,如果被授予并重新运行相同的 yourgetLocationmethod();

经过数小时的研究和尝试新事物后,我发现我的 AndroidManifest.xml 没有合并文件,但我的所有项目都发生了这种情况。

我找不到发生这种情况的答案,但这就是 AndroidManifest.xml 中的权限不起作用的原因。

我为解决该问题所做的事情

  1. 删除位于 E:/Android Studio(自定义)的 Android Studio 目录
  2. 删除位于 C:/Users/UserName/.android 的 .android 目录(默认)
  3. 删除位于 C:/Users/UserName/.gradle 的 .gradle 目录(默认)
  4. 安装新的 Android Studio

在那之后之前的所有项目都运行良好

注意: 要查看目录(例如 android),请确保已启用“显示隐藏 files/folders”