Je reçois cette erreur en essayant de compiler mon application React native Android. L'application Android ne peut pas résoudre BuildConfig.DEBUG.
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJavaWithJavac
/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:compileDebugJavaWithJavac FAILED
Je peux temporairement le résoudre en le définissant simplement sur true. Cela est peut-être arrivé après que j'ai changé le nom d'une application (puisque c'est quelque chose que j'ai aussi 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 String APPLICATION_ID = "com.rappadmobile";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
J'ai reconstruit le projet avec react-native upgrade
. Mon problème était alors que j'avais d'anciens fichiers qui référençaient les anciens noms de paquets (parce que j'ai changé le nom de l'application dans package.json
). Une fois ceux-ci supprimés, j'ai résolu le problème.
La manière dont Android sait où trouver certains fichiers et comment connecter certains fichiers consiste à utiliser les champs définis dans AndroidManifest.xml. Étant donné que la configuration par défaut d'un projet React Native, référence tout avec. (Nom de la ressource), cela signifie que tout sera résolu en ce qui concerne le nom du paquet défini dans la balise <manifest>
. . Donc, pour que tout fonctionne correctement et que tout soit généré comme prévu, le chemin d'accès à MainActivity.Java doit être identique au nom du package.
exemple:
le nom de votre package d'applications: com.mycompanyname.myappname
emplacement de MainActivity.Java: Android/app/src/main/Java/com/mycompanyname/myappname/MainActivity.Java
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 votre MainActivity.Java
, vous pouvez vérifier que la première ligne est package com.YOU_APP_NAME;
Si cette ligne n'existe pas, vous devez l'ajouter.
Dans mon cas, j'ai changé le nom du paquet dans les fichiers BUCK et Manifest.
Dans le fichier BUCK, changez comme suit.
Android_build_config(
name = "build_config",
package = "NEW_PACKAGE_NAME",
)
Android_resource(
name = "res",
package = "NEW_PACKAGE_NAME",
res = "src/main/res", )
La mise à niveau de react-native a résolu cette erreur -
react-native upgrade
Maintenant, reconstruis -
react-native run-Android
Une combinaison de quelques réponses m'a aidé, résumé:
Supprimez les anciens fichiers éventuellement présents dans Android/app/src/main/Java/com Conservez simplement le fichier avec le nouveau nom de l'application. Ensuite, faites react-native upgrade
.
Vérifiez si vous avez manqué l’installation du gestionnaire de gestes réactif-natif.
fil ajouter réagir-natif-gestionnaire de gestes
npm install --save react-native-gesture-handler
lien de réactif natif réactif de gestionnaire de gestes natif