2013-06-27 12 views
13

Używam narzędzi programistycznych Androida 22, Eclipse Indigo i obecnej wtyczki Gradle dla Eclipse.ADT Eclipse + Gradle: niekompletna BuildConfig.java

Teraz chciałbym użyć różnych smakach poprzez zdefiniowanie w pliku build.gradle:

 productFlavors{ 
    A { 
     packageName "com.test.A" 
     buildConfig "public final static String FLAVOR = \"A\";" 

    } 
    B { 
     packageName "com.test.B" 
     buildConfig "public final static String FLAVOR = \"B\";" 
    } 
} 

O ile wiem, mogę Dostęp do tego zmiennych wykorzystujących BuildConfig.FLAVOR, ale definicja Brak FLAVOR w wygenerowanym folderze BuildConfig.java w gen.

Gdybym zmontować mój projekt poprzez Gradle prawidłowe i kompletne BuildConfig.java jest generowany w folderze Build/źródło/buildConfig/[A | B]/[debug | release]/pl/test/.

Działa gdybym zbudować projekt nad Gradle, ale nie mogę pracować z Eclipse, ponieważ spodziewa się, że zmienne są zdefiniowane w BuildConfig.java w gen folderu

mogę zmusić Gradle lub adt do generowania poprawnej BuildConfig.java w folderze gen?

+0

Obecnie zadaję to samo pytanie. Zakładam, że obecnie nie jest to możliwe ze względu na brak obsługi narzędzi w ADT. Możesz użyć refleksji, aby na razie uzyskać wartość FLAVOUR. – Moritz

Odpowiedz

2

Android Studio jest krwawieniem (jeszcze nie beta).

W odpowiedzi Issue 57668 przez zespół Android (podniesione przez @arcone)

Projektu państwach # 2 x ... @ android.com

Wtyczka zaćmienie nie jest kompatybilny z wtyczką androida.

Nie można importować projektu gradle Android do Eclipse przy użyciu domyślnej obsługi Gradle w Eclipse.

Aby pracować w Eclipse będziemy musieli zmienić wtyczki Gradle dla Eclipse, w taki sam sposób jesteśmy modyfikowania wsparcia Gradle w IntelliJ

To jest Android zespół pracuje nad wtyczką Gradle dla IntelliJ i Zmienna gradle dla Eclipse również musi zostać zaktualizowana.

można rozwijać w Eclipse z ADT i uruchomić Gradle zbudować używając Nodeclipse/Enide Gradle for Eclipse (marketplace)

kilka zrzutów ekranu dla Gradle for Eclipse:

Istnieje some plans for Android with Gradle Development in Eclipse

1

Używanie Eclipse z nową wtyczką Gradle nie jest obsługiwane, zamiast tego powinieneś użyć Android Studio.

Ponadto, ponieważ pytasz o to, wtyczka została dodana do tej funkcji. Z release notes for version 0.7.0 of the Android Gradle plugin:

Budowa Config teraz automatycznie zawierać więcej stałe dla PACKAGE_NAME, VERSION_CODE, VERSION_NAME, BUILD_TYPE, smak, a także FLAVOR_ jeśli istnieje kilka wymiary smak.

1

Czy mogę zmusić gradle lub adt do wygenerowania poprawnej wersji BuildConfig.java w folderze gen?

Tak, z hack: raz :generateDebugBuildConfig (zastąpić Debug z wariantu trzeba) prowadzi w Gradle, będziesz miał BuildConfig.java czego potrzebujesz.

Zrobiłem to na Windows, ale powinna być taka sama dla Unix ze swoim ulubionym skorupy i cp

  1. Otwartych Właściwości projektu i przejdź do Builders
  2. Dodaj "program" Builder
    • Lokalizacja: C:\Windows\System32\cmd.exe
    • Katalog roboczy: Przeglądaj obszar roboczy ... i wybierz y Nasz projekt,
      wynik będzie coś takiego: ${workspace_loc:/YourProject}
    • Argumenty: /c "xcopy build\generated\source\buildConfig\debug gen /S /I /Y"
    • Konfigurowanie kiedy uruchomić
      • Odśwież zakładka: "Szczególne środki" wybierz gen folderu
      • Budowanie kartę Opcje: "Po wyczyszczeniu", "Ręczny", "Automatyczny" i "Określanie zasobów", aby być folderem głównym projektu:
  3. Upewnij się ten nowy budowniczy jest umieszczony pomiędzy Android Pre Compiler i Java Builder

UWAGA: Jest to naprawdę działa przeciwko ADT i prawdopodobnie nie będzie inne brakujące elementy mogą okazać trudne w obsłudze (applicationIdSuffix, resValue, źródło wariant foldery, żeby wymienić tylko kilka). Łatwiej jest zrezygnować z Eclipse ADT i przejść do Android Studio. Wydaje się, że Google chce tego mimo to nie przyznać publicznie. Nie było prawdziwego postępu w ADT, ponieważ powiedzieli, że utrzymają go na I/O 2013.

Powiązane problemy