无法访问ActivityCompatApi23类

9

我在使用gradle文件时遇到了运行时问题。我将compile 'com.google.android:flexbox:0.3.1'添加为编译时依赖项到我的Gradle文件中。但是我遇到了一个错误,于是我在项目级别的Gradle文件中添加了以下内容。

maven {
            url "https://maven.google.com"
        }

在添加上述内容后,最终呈现的效果如下:

这是在添加上述内容后的最终效果

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

在我的应用级Gradle文件中添加上述内容后,当我尝试运行应用程序时,出现了不同的错误。 因此,根据一些SO答案,我执行了以下操作。
  1. 尝试清理和重建。
  2. 导航至路径projectName\.idea\libraries并删除包含除当前版本25.3.1以外的支持库版本的文件。 3.为了解决错误,我从我的应用程序级别Gradle文件中进一步删除了这行代码:

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' })

现在,带有错误的Gradle文件如下:

错误:

Error:(28, 8) error: cannot access ActivityCompatApi23
class file for android.support.v4.app.ActivityCompatApi23 not found

我的 Gradle 文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.example.test"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support:cardview-v7:25.3.1'
    compile 'com.android.support:support-v4:25.3.1'
    compile 'com.google.android:flexbox:0.3.1'
    compile 'uk.co.chrisjenx:calligraphy:2.3.0'
    testCompile 'junit:junit:4.12'
}
4个回答

5

我遇到了一个问题。

当我使用 Android Room 的时候,就像这样:

compileSdkVersion 25 compile "android.arch.persistence.room:runtime:1.0.0"

我得到了相同的错误。

因为 compileSdkVersion 应该匹配支持库的主要版本。

更多细节可以看这个: Error in support lib after room persistence

Room 依赖于 26.1 版本的支持库,这可能是它无法正常运行的原因,因为 SupportLibrary 不保证不同版本之间的互操作性。

此外,你可以使用以下方法来解决这个问题:

compile ("android.arch.persistence.room:runtime:1.0.0") {
                exclude group: 'com.android.support'
}


4
您将compileSdkVersion声明为25,而flexbox布局的0.3.1版本使用支持库版本26.0.0 - 这是一个问题,compileSdkVersion应该与支持库主要版本匹配。请升级您的项目到26或使用一个依赖于sdk 25的flexbox布局版本,似乎是v0.2.7:
compile 'com.google.android:flexbox:0.2.7'

让我来检查一下...你从哪里得到这个信息的?官方的Github readme文件中没有这个信息。 - oldcode
{btsdaf} - azizbekian
{btsdaf} - oldcode
您可以点击“uses”这个词,它是源代码的网址。 - azizbekian

2

使用

compile 'com.android.support:appcompat-v7:26.1.0'

0

我刚刚修改了这行代码

compile 'com.android.support:appcompat-v7:26.0.0-alpha1'

编译

'com.android.support:appcompat-v7:26.+'

对我有效


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接