【问题标题】:Cannot resolve symbol 'ActivityCompat' and 'content'无法解析符号“ActivityCompat”和“内容”
【发布时间】:2019-09-10 09:55:07
【问题描述】:

我是 android 新手,正在学习如何实现基于位置的服务,但遇到以下错误 -

无法解析符号“ActivityCompat” 在“导入 android.support.v4.app.ActivityCompat;”行中

无法解析符号“内容” 在'import android.support.v4.content.ContextCompat;'行中

在做了一些研究后,我发现您需要将以下内容添加到 gradle.build 文件compile 'com.android.support:support-v4:23.0.0'

所以我这样做了,但我仍然遇到同样的错误。我试过 clean 还是什么都没有。

如何修复错误?

这是我想要关注的链接

https://www.tutorialspoint.com/android/android_location_based_services.htm#

这是我的 java 文件 -

package com.example.location;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.content.pm.PackageManager;

import android.Manifest;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.content.ContextCompat; # error
import android.support.v4.app.ActivityCompat;    #error
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.app.Activity;

// Remaining code

这是我的毕业典礼

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.location"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.android.support:support-compat:+'
    implementation 'com.android.support:appcompat-v7:+'

    implementation 'com.android.support:support-v4:26.1.0'
}
'''

【问题讨论】:

    标签: java android android-support-library android-appcompat androidx


    【解决方案1】:

    你必须使用 androidx 类:

    添加依赖:

    implementation "androidx.core:core-ktx:+"
    

    并更改您的导入:

    import android.support.v4.app.ActivityCompat -> import androidx.core.app.ActivityCompat
    import android.support.v4.content.ContextCompat -> import androidx.core.content.ContextCompat
    

    同时在您的build.gradle 中删除支持库依赖项:

    //implementation 'com.android.support:support-compat:+'
    //implementation 'com.android.support:appcompat-v7:+'
    //implementation 'com.android.support:support-v4:26.1.0'
    

    【讨论】:

    • 请查看https://developer.android.com/jetpack/androidx/migrate/class-mappings 以从android.support.v4.content 命名空间和相应的androidx 类中查找类。
    【解决方案2】:

    删除这个

    import android.support.v4.content.ContextCompat; # error
    import android.support.v4.app.ActivityCompat;    #error
    

    并添加如下行,因为您使用的是androidx

    import androidx.appcompat.app.AppCompatActivity;
    

    或者在删除以上两行之后,只需点击AppCompatActivity上的alt+enter

    【讨论】:

    • 在androidx中不支持v4或其他版本,所以需要导入'androidx'的包
    【解决方案3】:

    对于原生反应

    在项目文件夹中运行命令。

    npx jetify
    

    【讨论】:

      【解决方案4】:

      这适用于我的 AndroidX

      build.gradle

      dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])
      implementation 'androidx.appcompat:appcompat:1.1.0'
      implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
      

      }

      位置活动

      package com.example.location;
      import androidx.appcompat.app.AppCompatActivity;
      import androidx.core.app.ActivityCompat;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-04
        • 2018-11-11
        • 2015-03-04
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多