странно не могу найти символ '@IntDef', но AndroidStudio не показывает ошибки - PullRequest
0 голосов
/ 13 марта 2020

my Android Снимок экрана Studio

Android Сбой сборки Studio с отображением сообщения: не удается найти символ '@IntDef', но код java, отображаемый в IDE, показывает без ошибок, как видно из ссылки, класс успешно импортирован, и я могу найти его во «Внешних библиотеках» внутри представления проекта Android Studio, также я нахожу его в build-path при работе с gralew xxx --debug --stacktrace.

Я перевожу хромовый проект Google в Android Студийный проект с идентификатором коммита 'b4a3bf71d7762468ad6ecf2e1461ff2135473063'. Смешивая код support.v4. * С androidx.annotation и androidx.browser, я изменил gradle.properties с помощью 'android .useAndroidX = true' и 'android .enableJetifier = false', так что Android Studio показывает оба пакета успешно импортированы, но не удалось собрать с ошибкой «не удается найти символ».

Кроме того, я написал простую демонстрацию, чтобы доказать, что использование микширования в порядке, но я сомневаюсь в этом. Я также удаляю все возможные файлы не- java в исходном каталоге, включая python -script, OWNERS, DEPS, некоторые файлы aidl, но все равно получаю ту же ошибку. Я не знаю, почему есть ошибка сборки.

Может быть, файл build.gradle может вызвать эту ошибку?

rootProject.ext.clsDefineChromiumFlavors(project)

sourceSets {
    main.java.srcDirs += 'src/deps/java'

    main.res.srcDirs += 'src/main/res_chromium'
    main.res.srcDirs += 'src/main/res_template'
    main.res.srcDirs += 'src/main/res_vr'

    abi_arm32 {
        java.srcDirs += 'flavor_src/abi_arm32/annotation_processor_output/java'
        java.srcDirs += 'flavor_src/abi_arm32/input_srcjars/java'
        java.srcDirs += 'flavor_src/abi_arm32/others/java'

        res.srcDirs += 'flavor_res/abi_arm32/chrome/res'
        res.srcDirs += 'flavor_res/abi_arm32/chrome/app/policy/res'
        res.srcDirs += 'flavor_res/abi_arm32/components/strings/res'
    }
    abi_arm64 {

    }
}

определение закрытия здесь:

// closure: define chromium flavors
ext.clsDefineChromiumFlavors = { curProject ->
    if (curProject == null) {
        return
    }
    curProject.android.flavorDimensions 'default'
    curProject.android.productFlavors {
        abi_arm32 {}
        abi_arm64 {}
        all { flavor ->
            curProject.android.sourceSets[flavor.name].setRoot("flavor_src/${flavor.name}")
        }
    }
}

1 Ответ

0 голосов
/ 13 марта 2020

SuppressLint добавлен в API уровня 16, поэтому вам нужно перейти на уровень API 16.

Другое решение - добавить appcompat-v7 в ваш проект build.gradle.

Также , убедитесь, что это включено:

implementation "androidx.annotation:annotation:1.1.0"
...