You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Android Studio中Could not find com.yanzhenjie:permission:2.0.3错误?

解决Android Studio中无法找到com.yanzhenjie:permission:2.0.3依赖的问题

错误原因

你遇到的Could not find com.yanzhenjie:permission:2.0.3错误,核心原因有两个:

  • 依赖坐标写错:该权限库(AndPermission)的正确Maven坐标是com.yanzhenjie:andpermission:2.0.3,而非com.yanzhenjie:permission:2.0.3
  • 仓库配置不全:即使坐标正确,该版本的库可能未发布到Google Maven或Maven Central,需要添加额外仓库

解决方案

步骤1:修正依赖坐标

打开app模块下的build.gradle(或build.gradle.kts),将错误的依赖替换为正确的:

// 替换之前的错误依赖
implementation 'com.yanzhenjie:andpermission:2.0.3'

步骤2:添加必要的仓库

由于Gradle 8.2.2属于新版Gradle,仓库配置通常在项目根目录的settings.gradle(或settings.gradle.kts)中,添加JitPack仓库:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        // 添加JitPack仓库
        maven { url 'https://jitpack.io' }
    }
}

如果你的项目仍使用旧版结构(仓库配置在项目级build.gradle),则修改该文件:

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

步骤3:同步并构建项目

点击Android Studio右上角的「Sync Project with Gradle Files」按钮,同步完成后重新构建项目。

替代方案:使用原生权限API

如果不想依赖第三方库,推荐使用AndroidX原生的Activity Result API来申请危险权限,示例代码如下:
在MainActivity.java中:

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.Manifest;

public class MainActivity extends AppCompatActivity {
    // 声明权限请求Launcher
    private ActivityResultLauncher<String[]> requestPermissionLauncher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化权限请求Launcher
        requestPermissionLauncher = registerForActivityResult(
                new ActivityResultContracts.RequestMultiplePermissions(),
                result -> {
                    // 处理权限申请结果
                    Boolean locationGranted = result.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false);
                    Boolean coarseLocationGranted = result.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false);
                    if (locationGranted != null && locationGranted) {
                        // 权限已授予,执行位置相关操作
                    } else {
                        // 权限被拒绝,提示用户
                    }
                }
        );

        // 发起位置权限申请
        requestPermissionLauncher.launch(new String[]{
                Manifest.permission.ACCESS_FINE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION
        });
    }
}

内容的提问来源于stack exchange,提问作者우정민

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:05:09