Не удается получить доступ к классу ActivityCompatApi23

У меня проблемы с рабочим файлом. Я добавил это 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.13. Чтобы устранить ошибку, я удалил эту строку из файла Gradle уровня приложения,

    androidTestCompile ('com.android.support.test.espresso: espresso-core: 2.2.2', {исключить группу: 'com.android.support', модуль: '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 ответа

Решение

Вы объявили compileSdkVersion равен 25, тогда как 0.3.1 версия макета flexbox использует версию библиотеки поддержки 26.0.0 - это проблема, compileSdkVersion должна соответствовать основной версии библиотеки поддержки.

Либо обновите ваш проект до 26, либо используйте версию макета flexbox, основанную на sdk 25, которая выглядит как v0.2.7:

compile 'com.google.android:flexbox:0.2.7'

Как проблема, с которой я встречаюсь。

Когда я использую Android Room, как это:

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

Я получаю ту же ошибку.

Потому что compileSdkVersion должен соответствовать основной версии библиотеки поддержки.

Более подробно вы можете увидеть это: Ошибка в поддержке библиотеки после сохранения номера

Пространство зависит от 26.1 библиотеки поддержки, поэтому, вероятно, она сломана, потому что SupportLibrary не обещает взаимодействия между версиями.

Кроме того, вы можете решить эту проблему, используйте это

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

Использование

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

Я только что изменил линию

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

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

и это сработало для меня

Другие вопросы по тегам