Réagir à l’erreur de génération native Android MainActivity.java:29: erreur: symbole introuvable

Je reçois cette erreur en essayant de comstackr mon application Android React Native. L’application Android ne peut pas résoudre BuildConfig.DEBUG.

:app:processDebugJavaRes UP-TO-DATE :app:comstackDebugJavaWithJavac /Users/amirsharif/mobile-rappad/android/app/src/main/java/com/rappadmobile/MainActivity.java:29: error: cannot find symbol .setUseDeveloperSupport(BuildConfig.DEBUG) ^ symbol: variable BuildConfig location: class MainActivity >1 error :app:comstackDebugJavaWithJavac FAILED 

Je peux le résoudre temporairement en le définissant simplement sur true. Cela pourrait être arrivé après avoir changé le nom d’une application (puisque c’est quelque chose que j’ai également essayé de faire).

Je dois probablement changer quelque chose avec Gradle pour qu’il génère à nouveau le bon type de fichiers.

 /** * Automatically generated file. DO NOT MODIFY */ package com.app; public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final Ssortingng APPLICATION_ID = "com.rappadmobile"; public static final Ssortingng BUILD_TYPE = "debug"; public static final Ssortingng FLAVOR = ""; public static final int VERSION_CODE = 1; public static final Ssortingng VERSION_NAME = "1.0"; } 

La façon dont Android sait où trouver certains fichiers, et comment connecter certains fichiers, est en utilisant des champs définis dans AndroidManifest.xml. Depuis la configuration par défaut d’un projet React Native, fait référence à tout avec. (Nom-de-ressource), cela signifie que tout sera résolu en fonction du nom de package défini dans la . Donc, pour que tout fonctionne correctement et que tout soit généré comme prévu, le chemin d’access à MainActivity.java doit être identique à celui du package.

Exemple:

votre nom de package d’applications: com.mycompanyname.myappname

emplacement de MainActivity.java: android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java

J’ai reconstruit le projet avec une react-native upgrade . Mon problème était alors que j’avais d’anciens fichiers référençant les anciens noms de paquetages (parce que j’ai changé le nom de l’application dans package.json ). Une fois ces éléments supprimés, j’ai résolu le problème.

Dans votre MainActivity.java , vous pouvez vérifier que la première ligne est le package com.YOU_APP_NAME;

Si cette ligne n’existe pas, vous devez l’append.

J’ai eu le même problème et il a été résolu en ajoutant simplement l’instruction d’importation suivante dans MainApplication.java :

 import com.facebook.react.BuildConfig; 

Dans mon cas, j’ai changé le nom du package à la fois dans le fichier BUCK et dans le fichier Manifest.

Dans BUCK modifier le fichier comme suit.

 android_build_config( name = "build_config", package = "NEW_PACKAGE_NAME", ) android_resource( name = "res", package = "NEW_PACKAGE_NAME", res = "src/main/res", ) 

Supprimez les anciens fichiers qui pourraient se trouver dans android / app / src / main / java / com. Gardez simplement le fichier avec le nouveau nom de l’application. Effectuez ensuite une react-native upgrade .

La mise à niveau de rea-native a résolu cette erreur –

 react-native upgrade 

Maintenant reconstruire –

 react-native run-android 

Une combinaison de quelques réponses m’a aidé, résumé:

  • Assurez-vous que les noms de vos paquets javascript sont corrects
  • mettre à jour le nom du package dans le fichier de construction graduel
  • mettre à jour le nom du package dans le fichier manifeste
  • assurez-vous que le chemin d’access à vos sources javascript est une structure de dossier qui correspond à votre nom de package