gpt4 book ai didi

java - 无法解析 checkSelfPermission() 或 requestPermissions()

转载 作者:行者123 更新时间:2023-12-02 09:23:20 29 4
gpt4 key购买 nike

这可能是一个非常愚蠢的问题。

我有一个几年前使用 Eclipse 编写的应用程序,适用于 Android OS 8 (2.3.x)。我正在尝试将其带入现代世界(仍然使用 8 构建,但目标是 28),并将其移至 Android Studio。我已经很多年没有接触过 Android 代码了,对 Android Studio 知之甚少,对 Gradle 更是知之甚少。

我目前正在尝试处理不同的权限环境,即检查启动并在必要时进行请求。我在主 Activity 中有以下代码(从 Activity 扩展) - 我知道这很简单并且可以与其他逻辑一起使用,我现在只是想让它原则上运行:

...
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
...
onCreate(...) {
...
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(
this,
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
ID_ACCESS_FINE_LOCATION);
...

android-support-v4.jar位于项目的/libs下。

尽管进行了导入,但构建仍无法解析 checkSelfPermission() 或 requestPermissions()。

我还发现了关于此的其他问题,一个( self )答案是“AS将supportlib作为jar导入,这个jar来自2014年。我刚刚用真正的依赖项替换了jarimport,现在它正在工作。”

这听起来有点像我,但不幸的是,由于我对构建环境的了解有限,我并没有真正理解答案,而且我担心会错误地搞砸一些大事。如果有人能用一个音节的语言解释我实际上需要做什么来解决这个问题,或者至少指出我在某个地方进行了解释,我将非常感激......

谢谢。

后记

按照评论中的要求构建.gradle(除了我更改目标 SDK 之外,它是在从 Eclipse 树导入时自动创建的):

apply plugin: 'com.android.application'

android {
compileSdkVersion 8
buildToolsVersion "29.0.2"

defaultConfig {
applicationId "uk.co.nightshadearts.gpscompass"
minSdkVersion 8
targetSdkVersion 28
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}

dependencies {
compile project(':googleplayservices_lib')
compile files('libs/android-support-v4.jar')
}

最佳答案

android-support-v4.jar 是一个非常旧且非常已弃用的库。您应该熟悉 new Gradle-based build system 。要使用最新版本的 ContextCompatActivityCompat,请执行以下操作:

  • libs/ 中删除 android-support-v4.jar
  • 打开模块的 build.gradle 文件(嵌套文件,而不是项目根目录中的文件)
  • 添加实现“androidx.core:core:1.1.0”(撰写本文时最新稳定版本)或实现“androidx.core:core:1.2.0-beta01” code>(撰写时的最新版本)到您的依赖项 block :
...
dependencies {
...
implementation "androidx.core:core:1.1.0"
}

(取自 here )

  • 同步项目,当您更改 build.gradle 文件内容时,您应该会收到同步提示
  • 重新导入 androidx.core.content.ContextCompatandroidx.core.app.ActivityCompat

关于java - 无法解析 checkSelfPermission() 或 requestPermissions(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520618/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com