Gradle buildConfigField BuildConfig kann das Symbol nicht auflösen
Lesezeit: 5 Minuten
Gaëtan
Ich verwende Gradle, um meine Android-Anwendung zu erstellen. Ich versuche, einige Flags basierend auf dem Build-Typ (Release oder Debug) zu verwenden.
Und wenn ich versuche anzurufen BuildConfig.PREPROD oder BuildConfig.STAGING Ich erhalte die Fehlermeldung „Symbol kann nicht aufgelöst werden“. Die Gradle-Synchronisierung war erfolgreich, also weiß ich nicht, ob ich einige Schritte vergessen habe, um diese Funktion nutzen zu können?
Das Erzeugte BuildConfig.java Datei ist die folgende (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 = "";
}
Können Sie überprüfen, ob die richtige BuildConfig-Klasse erstellt wurde. Es würde sich in befinden build/source/buildconfig/debug/...
– Xavier Ducrohet
24. März 2014 um 15:41 Uhr
Ich habe die generierte hinzugefügt BuildConfig.java zu meiner frage.
– Gaëtan
24. März 2014 um 15:56 Uhr
Welche Version des Plugins verwendest du? Mit 0.9.1 sehe ich das nicht (beide boolesche Werte werden in der Klasse angezeigt).
– Xavier Ducrohet
24. März 2014 um 16:40 Uhr
Sie sollten nicht synchronisieren müssen (obwohl Studio Sie dazu auffordert, weil es nicht weiß, ob Sie das Modell geändert haben), aber Sie müssen bauen, da die BuildConfig-Klasse während des Builds generiert wird, basierend auf dem, was in der ist build.gradle-Datei.
– Xavier Ducrohet
24. März 2014 um 17:12 Uhr
Hallo, ich verwalte zwei Geschmacksrichtungen in der Anwendung über Konfigurationseinstellungen und wie Sie versuche ich, eine Konfigurationsvariable zu erstellen, aber für unterschiedliche Geschmacksrichtungen. Ich habe es auf Ihre Weise versucht, aber kein Update in flavour/BuildConfig.java gesehen und konnte deshalb nicht einmal in der Kompilierzeit auf die Variable zugreifen. Irgendein Vorschlag !
– Code
9. August 2015 um 7:40 Uhr
Stellen Sie sicher, dass Ihre Datei das Recht importiert BuildConfig Klasse. Wenn Sie andere Projektbibliotheken oder Module haben, wird manchmal die falsche buildConfig importiert. Stellen Sie sicher, dass Ihr Import so ist com.project.app.BuildConfig. Ich hatte das gleiche Problem und das Problem war folgendes: Ich hoffe, es kann jemandem helfen.
Wie mache ich das mit Build-Vairents, wenn sich die vollständige com.xx ändert?
– Zapnologica
11. Oktober 2018 um 11:36 Uhr
@Zapnologica-Build-Varianten sollten darauf keinen Einfluss haben. Solange Sie Ihre Variablen für jede Variante in der Datei build.gradle definiert haben.
– MRodrigues
12. Oktober 2018 um 8:09 Uhr
5 Jahre später und ich schulde Ihnen einen großen Dank. In meinem Fall wurde algoliasearch.BuildConfig verwendet, ohne dass ich es überhaupt importiert habe
– staubiger Müll
25. Januar 2020 um 8:21 Uhr
Wow, hat mir auch einige Kopfschmerzen erspart. In meinem Fall wurde Folgendes verwendet: com.google.firebase.BuildConfig
– Kenneth Browning
12. März 2020 um 15:13 Uhr
Hat für mich wie ein Zauber funktioniert, hatte meinen Paketnamen geändert und das hat das Problem verursacht. Das Aktualisieren des Imports auf den Paketnamen und das Hinzufügen von .BuildConfig hat es für mich behoben. Vielen Dank
– Cherucole
13. März 2020 um 8:01 Uhr
Ich bekam den gleichen Fehler. Versuchen Sie anzuklicken synchronisierenauf der rechten Seite von sparen. Mach das danach Gradle-Synchronisierung.
Wo ist die Synchronisierung?
– Glückliches Mädchen
2. Februar 2018 um 17:29 Uhr
Datei > „Projekt mit Gradle-Dateien synchronisieren“.
– Jagd auf Roberts
8. Januar 2021 um 21:13 Uhr
Danke mein Herr! Obwohl es nicht die Schaltfläche zum Synchronisieren war, die mein Problem gelöst hat, habe ich auf Caches ungültig machen / Neustart geklickt und alles wird wieder normal.
– Keith Mak
29. April 2021 um 4:18 Uhr
Caches ungültig machen und neu starten hat bei mir nicht funktioniert. Ich musste reinigen und dann neu aufbauen, und es funktioniert
– SaPropper
17. Oktober 2021 um 20:25 Uhr
Ist mir passiert, weil ich ein String-Feld nicht richtig deklariert habe.
Ich habe die Fluchtzeichen vergessen. Wechsel von :
buildConfigField "String", "FOO", "foo"
zu
buildConfigField "String", "FOO", "\"foo\""
Problem gelöst.
Das war es für mich! Vielen Dank! Manchmal sind es wirklich diese verdammten Kleinigkeiten 🙂
Änderungen in Gradle-Build-Dateien aktualisieren die Generierung der BuildConfig-Klasse nicht, auch wenn Sie oben auf die gelbe Leiste „Jetzt synchronisieren“ klicken. Eine vollständige Bereinigung erzwingt die Generierung dieser Datei.
In Android Studio: Erstellen -> Projekt bereinigen
djzhao
In meinem Fall in Android Studio:
Erstellen -> Projekt bereinigen;
Datei -> Caches ungültig machen / Neustart…
Erstellen -> Projekt neu erstellen
Dies ist die einzige Lösung, die für mich funktioniert hat!
– Adam Burley
18. Mai 2021 um 8:58 Uhr
svprdga
Dasselbe ist mir passiert, behoben, als dies im Projektstamm ausgeführt wurde:
./gradlew assembleDebug
Dies ist die einzige Lösung, die für mich funktioniert hat!
– Adam Burley
18. Mai 2021 um 8:58 Uhr
Mohammed Alotol
Sie müssen zuerst die gewünschte Build-Variante auswählen, um auf ihr buildConfigField zugreifen zu können
Das hat mir geholfen. Ich hatte bereits eine Build-Variante ausgewählt, aber das Ändern verursachte einen Neuaufbau, der den Fehler verschwinden ließ.
– LarsH
3. März 2020 um 14:54 Uhr
Verwenden Sie dies, es wird funktionieren android{ buildFeatures{ buildConfig = true } }
– Nithin Raja
27. Januar 2021 um 17:27 Uhr
Anstatt hier den Build-Typ auszuwählen, habe ich den Namen des Build-Typs in den hier ausgewählten geändert.
– Hüseyin Bülbül
23. Februar 2021 um 22:22 Uhr
13304400cookie-checkGradle buildConfigField BuildConfig kann das Symbol nicht auflösenyes
Können Sie überprüfen, ob die richtige BuildConfig-Klasse erstellt wurde. Es würde sich in befinden
build/source/buildconfig/debug/...
– Xavier Ducrohet
24. März 2014 um 15:41 Uhr
Ich habe die generierte hinzugefügt
BuildConfig.java
zu meiner frage.– Gaëtan
24. März 2014 um 15:56 Uhr
Welche Version des Plugins verwendest du? Mit 0.9.1 sehe ich das nicht (beide boolesche Werte werden in der Klasse angezeigt).
– Xavier Ducrohet
24. März 2014 um 16:40 Uhr
Sie sollten nicht synchronisieren müssen (obwohl Studio Sie dazu auffordert, weil es nicht weiß, ob Sie das Modell geändert haben), aber Sie müssen bauen, da die BuildConfig-Klasse während des Builds generiert wird, basierend auf dem, was in der ist build.gradle-Datei.
– Xavier Ducrohet
24. März 2014 um 17:12 Uhr
Hallo, ich verwalte zwei Geschmacksrichtungen in der Anwendung über Konfigurationseinstellungen und wie Sie versuche ich, eine Konfigurationsvariable zu erstellen, aber für unterschiedliche Geschmacksrichtungen. Ich habe es auf Ihre Weise versucht, aber kein Update in flavour/BuildConfig.java gesehen und konnte deshalb nicht einmal in der Kompilierzeit auf die Variable zugreifen. Irgendein Vorschlag !
– Code
9. August 2015 um 7:40 Uhr