Używam Gradle do tworzenia mojej aplikacji na Androida. Próbuję użyć niektórych flag w oparciu o typ kompilacji (wydanie lub debugowanie).
Mój plik Gradle wygląda następująco:
android {
buildTypes {
debug {
buildConfigField 'boolean', 'PREPROD', 'true'
buildConfigField 'boolean', 'STAGING', 'false'
}
release {
buildConfigField 'boolean', 'PREPROD', 'false'
buildConfigField 'boolean', 'STAGING', 'false'
}
}
}
A jeśli spróbuję zadzwonić BuildConfig.PREPROD
lub BuildConfig.STAGING
otrzymam błąd „Nie można rozwiązać symbolu”. Synchronizacja Gradle powiodła się, więc nie wiem, czy zapomniałem niektórych kroków, aby móc korzystać z tej funkcji?
Wygenerowany BuildConfig.java
plik jest następujący (in build/source/buildConfig/debug/com.example.myapp
):
package com.example.myapp;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String PACKAGE_NAME = "com.example.myapp";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 400;
public static final String VERSION_NAME = "";
}
android
gradle
buildconfig
Gaëtan
źródło
źródło
build/source/buildconfig/debug/...
BuildConfig.java
do mojego pytania.Odpowiedzi:
Upewnij się, że plik importuje odpowiednią klasę BuildConfig . Czasami, jeśli masz inne biblioteki lub moduły projektu, może zaimportować nieprawidłową konfigurację buildConfig. Upewnij się, że import wygląda tak, jak ten com.project.app.BuildConfig . Miałem ten sam problem, a problem polegał na tym, mam nadzieję, że może to komuś pomóc.
źródło
Dostałem ten sam błąd. Spróbuj kliknąć synchronizuj po prawej stronie zapisu . Zrób to po synchronizacji Gradle .
źródło
Zdarzyło mi się, ponieważ nie zadeklarowałem poprawnie pola typu String.
Zapomniałem o uciekających postaciach. Zmiana z:
buildConfigField "String", "FOO", "foo"
do
buildConfigField "String", "FOO", "\"foo\""
Rozwiązać problem.
źródło
Zmiany w plikach kompilacji Gradle nie odświeżają generacji klasy BuildConfig, nawet jeśli klikniesz żółty pasek „Synchronizuj teraz” u góry. Pełne czyszczenie wymusi wygenerowanie tego pliku.
W Android Studio: Kompiluj -> Wyczyść projekt
źródło
Upewnij się, że dodajesz swój parametr również do pliku defaultConfig. Prawdopodobnie korzystasz z domyślnego buildVarient, podczas gdy parametr jest zdefiniowany w określonym buildVariant.
w pliku gradle kompilacji użyj tego:
Następnie w kodzie użyj tego:
Mam nadzieję, że to pomoże, MA :)
źródło
Musisz najpierw wybrać żądany wariant kompilacji, aby mieć dostęp do jego buildConfigField
źródło
To samo stało się ze mną, naprawione podczas uruchamiania tego w katalogu głównym projektu:
źródło
jeśli tego typu problem wystąpi, po prostu wyczyść i przebuduj projekt.
dzięki.
źródło
Ten sam problem doprowadza mnie do szału od ponad tygodnia. W moim przypadku brakowało prostego importu. Szukałem tego, ale jakoś nigdzie w dokumentach, które mogłem znaleźć, nie wspomina, że musisz gdziekolwiek zaimportować klasę BuildConfig! A jednak jest to logiczne. Ciągle wierzyłem, że to może być automatyczne. Cóż, to NIE JEST.
Więc spróbuj:
BuildConfig.
część kodu, która powoduje błąd. W niebieskim dymku powinien pojawić się komunikat pomocy o treści w stylu: „? uk.co.package.app.BuildConfig? Alt + ENTER
” Kliknij go, a Android Studio automatycznie doda brakujący import. lubimport uk.co.package.app.BuildConfig;
gdzieś na liście swoich importów.odbudować ... to działa! cóż, i tak mi się udało.
Mam nadzieję, że pomoże to innemu nowicjuszowi z Androidem, takim jak ja!
źródło
W moim przypadku w Android Studio:
źródło
W Android Studio - kliknij Build, a następnie Clean Project - Po wyczyszczeniu kliknij Rebuild Project. - Po zakończeniu zamknij projekt. - Otwórz projekt ponownie i uruchom go, błąd nie powinien się ponownie pojawić, został usunięty.
źródło
W moim przypadku problem polegał na tym, że właśnie zmieniłem nazwę modułu mojego projektu, ale odwołania do nazwy tego modułu nie zostały automatycznie zaktualizowane w
AndroidManifest.xml
.Ręczna zmiana ich nazw i przebudowa projektu rozwiązała problem.
źródło
Wyszukaj wystąpienia BuildConfig. Miałem nieuczciwy import nieistniejącego BuildConfig i kompilatora zamiast przechwytywania tego, który wskazywał na losową linię kodu w innym miejscu!
źródło
Mój manifest nie był aktualny. Sprawdziłem plik AndroidManifest.xml i poprawiłem nazwę mojego pakietu. W ten sposób rozwiązałem ten problem.
źródło
Moje 2 centy:
Miałem poprawną
import xxx.BuildConfig
, AS wskazywał na tę linię i na te, które miałemBuildConfig.SOME_VARIABLE
, więc usunąłemimport
linię, odbudowałem ją, pojawił się błąd z informacją o tym,BuildConfig is unrecognised reference blah blah
a następnie zaimportowałem ją i odbudowałem ponownie.źródło
Napotkałem ten sam błąd podczas budowania (debugowania) starego projektu w Android Studio. Kiedy zbadałem błąd, odkryłem, że klasa BuildConfig została zdefiniowana w 2 plikach. Pierwszy był w BuildConfig.java, a drugi w BuildConfig2.java.
Usunąłem ten z pliku i działałem poprawnie.
źródło
W moim przypadku popełniłem głupi błąd KOPIOWANIE I WKLEJANIE TEGO SAMEGO WARIANTU. Właśnie zmieniłem nazwę drugiego wariantu i zadziałało.
źródło
Możliwe rozwiązanie: jeśli korzystasz z biblioteki rozliczeń systemu Android X , na przykład przez dodanie następującego wiersza w
build.gradle
pliku:implementation 'com.android.billingclient:billing:2.2.0'
Należy pamiętać, że biblioteka rozliczeń systemu Android RÓWNIEŻ zawiera własną
BuildConfig
klasę, co może zmylić edytor kodu Android Studio. W takim przypadku może automatycznie dodać następującąimport
instrukcję do jednej z Twoich klas:import com.android.billingclient.BuildConfig;
To nie jest ten, którego chcesz użyć, prawda? Ten, którego chcesz używać (jeśli robiłeś kompilację debugowania), może być tutaj:
./build/generated/source/buildConfig/debug/com/example/myapp/BuildConfig.java
Aby to naprawić, usuń wiersz instrukcji importu i przebuduj, aby sprawdzić, czy można go rozwiązać w prawo
BuildConfig.java
. Jeśli tak się nie stanie, być może będziesz musiał jawnie nazwać go za pomocą an,import com.example.myapp.BuildConfig.java
aby było bardzo jasne, że chcesz mieć wersję tego pliku z pakietu, a nie inną.Mam nadzieję że to pomoże!
źródło
Użyj tego dla Androida X
import androidx.multidex.BuildConfig;
to dla mnie praca.
źródło
Odbuduj swój moduł, klikając prawym przyciskiem myszy moduł i wybierz plik
Rebuild Module 'module name'
lub użyj skrótu: Ctrl+ Shift+F9
źródło