Ошибка: пакет com.android.nnotations не существует
У меня следующий класс
import com.android.annotations.NonNullByDefault;
@NonNullByDefault
public final class Log {
...
}
и вот мой файл build.gradle (некоторые части опущены)
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '24.0.1'
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionCode 2
versionName "0.2"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:support-annotations:25.0.0'
compile 'com.android.support:design:25.0.0'
}
В Android Studio нет предупреждений для моего класса
Однако, когда я пытаюсь собрать и запустить свое приложение, я получаю эту ошибку из Gradle
Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:assembleDebug]
Warning:[options] bootstrap class path not set in conjunction with -source 1.7
/home/puter/git-repos/TaskManager3/app/src/main/java/com/treemetrics/taskmanager3/util/Log.java
Error:(3, 31) error: package com.android.annotations does not exist
Error:(7, 2) error: cannot find symbol class NonNullByDefault
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 21.021 secs
Information:3 errors
Information:1 warning
Information:See complete output in console
Ответы
Ответ 1
Чтобы автоматически исправить все проблемы с android на androidx для React Native, (предварительное условие npx)
Добавьте следующие два флага в значение true в файле gradle.properties в ProjectFolder/android/gradle.properties
android.useAndroidX=true
android.enableJetifier=true
Execute
npm install --save-dev jetifier
npx jetify
npx react-native run-android
В вашем package.json добавьте следующее в скрипты
"postinstall" : "npx jetify"
Больше информации на https://github.com/mikehardy/jetifier
Обновление: Это теперь встроенный в реагирующий-родной 0,60. Если вы перейдете на реакцию 0,60, этот шаг вам не понадобится. - https://facebook.github.io/react-native/blog/2019/07/03/version-60#androidx-support
Ответ 2
Используйте реализацию androidx.appcompat:appcompat:1.0.2
в Gradle, а затем
изменить import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
в классах импорт
Ответ 3
Откройте gradle.properties
и используйте следующий код:
android.useAndroidX=false
android.enableJetifier=false
или U тоже может использовать эти зависимости:
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.annotation:annotation:1.0.2'
Ответ 4
Аннотации взяты из support library
которые упакованы в android.support.annotation
.
В качестве другого варианта вы можете использовать аннотацию @NonNull
которая означает, что значение параметра, поля или метода никогда не может быть нулевым.
Он импортируется из import android.support.annotation.NonNull;
Ответ 5
Вы можете найти здесь официальный javadoc библиотеки support-annotations
.
Ошибка: (3, 31) ошибка: пакет com.android.nnotations не существует
Как вы можете видеть, все классы находятся в одном пакете android.support.annotation
а не com.android.annotations
.
Ошибка: (7, 2) ошибка: не удается найти класс символов NonNullByDefault
Также класс NonNullByDefault
не существует в этом пакете.
Ответ 6
В моем случае мне пришлось использовать
import androidx.annotation...
вместо
import android.annotation...
Я перешел на AndroidX и забыл изменить это.
Ответ 7
У меня были похожие проблемы при переходе на androidx.
Если при добавлении следующих двух строк в gradle.properties проблема не решается
android.useAndroidX=true
android.enableJetifier=true
Тогда попробуй
- В Android Studio 3.2 и более поздних версиях вы можете перенести существующий проект в AndroidX, выбрав Refactor> Перенос в AndroidX в строке меню (developer.android.com)
.Если проблемы с миграцией по-прежнему возникают, попробуйте вручную заменить библиотеки, которые вызывают проблему.
Например,
Если у вас есть проблема с android.support.annotation.NonNull
, замените ее на androidx.annotation.NonNull
, как указано в приведенной ниже таблице сопоставлений классов.
Классовые отображения
Maven Artifact Mappings
Ответ 8
если ошибка из автоматически созданного файла butterknife
затем обновите версию зависимости "butterknife"
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'