无法访问ActivityCompatApi23类

时间:2017-10-25 09:03:23

标签: android gradle android-gradle android-build android-flexboxlayout

我的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',{         排除组:'com.android.support',模块:'support-annotations'     })

  3. 现在最终的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 个答案:

答案 0 :(得分:5)

就像我遇到的问题一样。

当我像这样使用Android Room时:

compileSdkVersion 25  编译“android.arch.persistence.room:runtime:1.0.0”

我得到了相同的错误。

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

更多细节你可以看到: Error in support lib after room persistence

  

房间取决于26.1的支持库,这可能是它被破坏的原因,因为SupportLibrary不承诺版本之间的互操作。

此外,您可以使用此

解决问题

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

答案 1 :(得分:4)

您声明compileSdkVersion等于25,而0.3.1版本的flexbox布局uses支持libs版本26.0.0 - 这是一个问题,{{1}应匹配支持libs主要版本。

将项目升级到26或使用依赖于sdk 25的flexbox布局版本,这似乎是v0.2.7:

compileSdkVersion

答案 2 :(得分:1)

使用

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

答案 3 :(得分:0)

我刚改变了行

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

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

它对我有用