web-dev-qa-db-fra.com

erreur: le package com.Android.annotations n'existe pas

J'ai la classe suivante

import com.Android.annotations.NonNullByDefault;

@NonNullByDefault
public final class Log {
    ...
}

et voici mon fichier build.gradle (certaines parties omises)

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'
}

Dans Android Studio, aucun avertissement n'est émis pour ma classe

enter image description here

Cependant, lorsque j'essaie de créer et d'exécuter mon application, j'obtiens cette erreur de 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
43
Moses

Pour résoudre automatiquement tous les problèmes de Android pour androidx pour React Native, (Prerequisite npx)

Ajoutez les deux indicateurs suivants à true dans votre fichier gradle.properties dans ProjectFolder/Android/gradle.properties

Android.useAndroidX=true
Android.enableJetifier=true

Execute

npm install --save-dev jetifier
npx jetify
npx react-native run-Android

Dans votre package.json, ajoutez ce qui suit aux scripts

  "postinstall" : "npx jetify"

Plus d'informations sur https: //github.com/mikehardy/jetifier

Mise à jour: Ceci est maintenant intégré en réactif 0.60 natif. Si vous migrez vers la version 0.60 native de React, vous n'aurez pas besoin de cette étape. - https: //facebook.github.io/react-native/blog/2019/07/03/version-60#androidx-support

83
Pavan Garre

Utiliser l'implémentation androidx.appcompat:appcompat:1.0.2 gradle puis

changement import Android.support.annotation.Nullable; à import androidx.annotation.NonNull; dans les classes importations

19
Sarthak Singhal

Ouvert gradle.properties et utilisez le code suivant:

Android.useAndroidX=false
Android.enableJetifier=false

ou U peut également utiliser ces dépendances:

implementation 'androidx.appcompat:appcompat:1.0.2'
 implementation 'androidx.annotation:annotation:1.0.2'
12
Behrouz.M

J'ai rencontré des problèmes similaires lors de la migration vers androidx.

Si en ajoutant les deux lignes ci-dessous à gradle.properties n'a pas résolu le problème

Android.useAndroidX=true
Android.enableJetifier=true

Puis essayez

  1. Avec Android Studio 3.2 et supérieur, vous pouvez migrer un projet existant vers AndroidX en sélectionnant Refactor> Migrer vers AndroidX depuis la barre de menus ( developer.Android.com )

Si vous rencontrez toujours des problèmes de migration, essayez manuellement de remplacer les bibliothèques à l'origine du problème.

Par exemple

Si vous rencontrez un problème avec Android.support.annotation.NonNull changez-le en androidx.annotation.NonNull comme indiqué dans le tableau de mappages de classes ci-dessous.

Mappages de classe

Mappages d'artefacts Maven

7
user44776

Dans mon cas, j'ai dû utiliser

import androidx.annotation...

au lieu de

import Android.annotation...

J'ai migré vers AndroidX et j'ai oublié de changer cela.

3
ribbit

Vous pouvez trouver ici le javadoc officiel du support-annotationsbibliothèque.

Erreur: (3, 31) erreur: le package com.Android.annotations n'existe pas

Comme vous pouvez le voir, toutes les classes sont dans le même package Android.support.annotation et non com.Android.annotations.

Erreur: (7, 2) erreur: impossible de trouver la classe de symboles NonNullByDefault

De plus, la classe NonNullByDefault n'existe pas dans ce package.

2

J'ai rencontré des problèmes similaires lors de la migration vers androidx. ce problème est dû à la dépendance de la bibliothèque Old Butter Knife.

si vous utilisez un couteau à beurre, vous devez utiliser au moins la version 9.0.0-SNAPSHOT de couteau à beurre ou supérieure.

implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT' annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'

2
Abhijeet Sharma

Les annotations proviennent du support's library qui sont emballés dans Android.support.annotation.

Comme autre option, vous pouvez utiliser @NonNull annotation qui indique qu'une valeur de retour de paramètre, de champ ou de méthode ne peut jamais être nulle.
Il est importé de import Android.support.annotation.NonNull;

2
Sanjeet

Vous ne devez éditer aucun code manuellement jetify devrait faire ce travail pour vous, si vous exécutez/construisez à partir de cli en utilisant react-native vous n'avez pas besoin de faire quoi que ce soit, mais si vous exécutez/construisez Andriod studio, vous devez exécuter jetify en tant que pré-build, voici comment vous automatisez ceci:

1- Dans le menu ci-dessus, allez dans éditer les configurations:

enter image description here

2- Ajoutez le bas de l'écran que vous trouverez avant le lancement cliquez sur le plus et choisissez Exécuter l'outil externe

enter image description here

2- Remplissez les informations suivantes, notez que le répertoire de travail est le répertoire racine de votre projet (pas le répertoire Android):

enter image description here

3- Assurez-vous que cela fonctionne avant toute autre chose, à la fin, votre configuration devrait ressembler à ceci: enter image description here

1
Fareed Alnamrouti

Tout ce que vous devez faire est de remplacer "import Android.support.annotation.Nullable" dans les importations de classe par "import androidx.annotation.Nullable;"

C'est une pratique courante ... chaque fois que n'importe quel problème d'importation donne ... supprimez cette importation et appuyez simplement sur Alt + Entrée sur la classe associée .. qui vous donnera l'option pour 'importer la classe' .. indice Entrée et les choses seront résolues .. .

1

en cas d'erreur du fichier généré automatiquement par butterknife, mettez à jour la version de dépendance de butterknife

implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
0
Amar Singh

Pour moi, c'était une ancienne version de npm.

Courir npm install npm@latest -g puis npm install

0
Muzikant