Otrzymuję ten błąd podczas próby skompilowania mojej aplikacji React Native na Androida. Aplikacja na Androida nie może rozwiązać pliku 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
Mogę tymczasowo rozwiązać ten problem, po prostu ustawiając go na true. Mogło się to zdarzyć po zmianie nazwy aplikacji (ponieważ to też próbuję zrobić).
Prawdopodobnie muszę coś zmienić w Gradle, aby ponownie generował odpowiedni rodzaj plików.
/**
* 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";
}
react-native
Przeciążenie 119
źródło
źródło
Sposób, w jaki Android wie, gdzie znaleźć określone pliki i jak je połączyć, polega na użyciu pól ustawionych w pliku AndroidManifest.xml. Ponieważ domyślna konfiguracja projektu React Native odwołuje się do wszystkiego z. (Nazwa zasobu), oznacza to, że wszystko zostanie rozwiązane w odniesieniu do nazwy pakietu ustawionej w
<manifest>
tagu. Aby wszystko działało od razu po wyjęciu z pudełka i zostało wygenerowane zgodnie z oczekiwaniami, ścieżka do pliku MainActivity.java powinna być taka sama jak nazwa pakietu.przykład:
nazwa Twojego pakietu aplikacji:
com.mycompanyname.myappname
lokalizacja MainActivity.java:
android/app/src/main/java/com/mycompanyname/myappname/MainActivity.java
źródło
Projekt przebudowałem z
react-native upgrade
. Mój problem polegał na tym, że miałem stare pliki, które odwoływały się do starych nazw pakietów (ponieważ zmieniłem nazwę aplikacji wpackage.json
). Po ich usunięciu rozwiązałem problem.źródło
W swoim
MainActivity.java
możesz sprawdzić, czy pierwsza linia topackage com.YOU_APP_NAME;
Jeśli ta linia nie istnieje, należy ją dodać.
źródło
W moim przypadku zmieniłem nazwę pakietu zarówno w pliku BUCK, jak i pliku manifestu.
W pliku BUCK zmień w następujący sposób.
źródło
Pomogło mi połączenie kilku odpowiedzi, podsumowanie:
MainApplication.java
itp.)BUCK
plikuźródło
package.json
i co masz na myśli przez „connect”?Jeśli
bundle identifier
zmieniłeś nazwę , prawdopodobnie będziesz musiał zmienić:Twój
android/app/src/main/....../MainApplication.java
pakiet i import .Mimo że użyłem
react-native-rename
pakietu npm , to nie zajął się niektórymi plikamiMainApplication.java
iMainActivity.java
.źródło
Aktualizacja natywnego reagowania rozwiązała ten błąd -
Teraz buduj ponownie -
źródło
react-native link
ponownie, aby ponownie połączyć natywne zależności.Usuń stare pliki, które mogą się tam znajdować w android / app / src / main / java / com Po prostu zachowaj plik z nową nazwą aplikacji. Więc zrób
react-native upgrade
.źródło
Sprawdź, czy nie zainstalowałeś modułu obsługi reakcji natywnych gestów.
z przędzą
przędza dodaj funkcję obsługi gestów
lub z npm
npm install --save reaguj na natywną obsługę gestów
Następnie
łącze reaguj-natywne reaguj-natywne-obsługa-gestów
źródło
Doświadczyłem tego, obserwując https://dev.to/karanpratapsingh/quick-guide-for-updating-package-name-in-react-native-3ei3 . Zmieniłem nazwę mojej aplikacji z
com.company_app
nacom.mycompany.myapp
, najwyraźniej było kilka plików, które nadal musiałem zaktualizować, ale nie zostały uwzględnione w przewodniku, który śledziłem, myślę, że przewodnik jest tylko ogólny, jak nowa aplikacja natywna do reagowania, rozwiązałem to robiąc globalne wyszukiwaniecom.company_app
i zastępując każdy z nich,com.mycompany.myapp
kiedy ma to sens.źródło