Debuguję problemy z Gradle w Android Studio i widzę odniesienia do „Uruchom synchronizację Gradle”, ale nie wiem, jak uruchomić to polecenie.
Jak uruchomić „Synchronizację Gradle” ze studia Android lub terminala Mac?
Debuguję problemy z Gradle w Android Studio i widzę odniesienia do „Uruchom synchronizację Gradle”, ale nie wiem, jak uruchomić to polecenie.
Jak uruchomić „Synchronizację Gradle” ze studia Android lub terminala Mac?
Odpowiedzi:
OSTRZEŻENIE : --recompile-scripts
polecenie jest przestarzałe od gradle
wersji 5.0. Aby sprawdzić swoją gradle
wersję, uruchom gradle -v
.
./gradlew --recompile-scripts
zrobi synchronizację bez tworzenia niczego.
Alternatywnie za pomocą wiersza poleceń w projekcie głównym
./gradlew build
Zsynchronizuje i zbuduje Twoją aplikację i zajmie więcej czasu niż zwykła synchronizacja Gradle
Aby zobaczyć wszystkie dostępne zadania oceniania, użyj ./gradlew tasks
W Android Studio 3.3 jest tutaj:
Zgodnie z odpowiedzią https://stackoverflow.com/a/49576954/2914140 w Android Studio 3.1 jest tutaj:
To polecenie jest przenoszone do File > Sync Project with Gradle Files
.
Miłośnicy skrótów klawiaturowych mogą dodać skrót do ręcznego uruchamiania synchronizacji Gradle, przechodząc do Plik -> Ustawienia -> Mapa klawiszy -> Wtyczki -> Obsługa Androida -> Synchronizuj projekt z plikami gradle (kliknij prawym przyciskiem myszy, aby dodać skrót klawiaturowy) -> Zastosuj - > OK i gotowe. Wybierz dowolny wygodny klawisz jako skrót do synchronizacji gradle, który nie koliduje z żadnym innym klawiszem skrótu (wybrałem Shift + 5 jako mój klawisz synchronizacji gradle), więc następnym razem, gdy chcesz uruchomić synchronizację gradle ręcznie, po prostu naciśnij ten klawisz skrótu klawiaturowego.
Przypuszczam, że chodzi o Narzędzia> Android> „Synchronizuj projekt z plikami Gradle” z głównego menu Android Studio.
gradle --recompile-scripts
wydaje się robić synchronizację bez tworzenia niczego. możesz włączyć automatyczne budowanie według
gradle --recompile-scripts --continuous
Więcej informacji można znaleźć w dokumentacji:
https://docs.gradle.org/current/userguide/gradle_command_line.html
Skrót (Ubuntu, Windows):
Ctrl + F5
Zsynchronizuje projekt z plikami Gradle.
Myślę, że ./gradlew tasks
to samo z Android studio sync
. Czemu? Wytłumaczę to.
Mam problem podczas testowania raportu pokrycia jacoco. Kiedy uruchamiam ./gradlew clean :Test:testDebugUnitTest
bezpośrednio w wierszu poleceń, pojawia się błąd.
Error opening zip file or JAR manifest missing : build/tmp/expandedArchives/org.jacoco.agent-0.8.2.jar_5bdiis3s7lm1rcnv0gawjjfxc/jacocoagent.jar
Jeśli jednak najpierw kliknę synchronizację Android Studio, działa poprawnie. Ponieważ build/../jacocoagent.jar
pojawiają się naturalnie. Nie wiem dlaczego, może jest błąd we wtyczce jacoco. Jednostka, którą uważam za bieganie, .gradlew tasks
sprawia, że słoik również się pojawia. Więc mogę uzyskać ten sam wynik w skrypcie gralde.
Poza tym gradle --recompile-scripts
nie działa na problem.
Każdy, kto chce używać wiersza poleceń do synchronizowania projektów z plikami Gradle, pamiętaj:
Od Gradle 5.0,
Opcja
--recompile-scripts
wiersza poleceń została usunięta.
Mam problem z dowodem na to, że gradlew clean nie jest równy ADT build clean. A teraz staram się to naprawić.
Oto, co otrzymałem: Ustawiłem configProductID = 11111 z mojego gradle.properties, z mojego build.gradle, dodaję
resValue "string", "ProductID", configProductID
Jeśli zrobię czystą kompilację z ADT, można wygenerować zasób R.string.ProductID. Wtedy mogę z powodzeniem wykonać poniższe polecenie.
gradlew assembleDebug
Ale kiedy próbuję skonfigurować serwer kompilacji, nie chcę pomocy od ADT IDE, więc muszę unikać używania czystego kompilacji ADT. Oto mój problem. Teraz zmieniam nazwę mojego zasobu z „ProductID” na „myProductID”, robię:
gradlew clean
Otrzymuję błąd
PS D:\work\wctposdemo> .\gradlew.bat clean
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\work\wctposdemo\app\build.gradle'
* What went wrong:
Could not compile build file 'D:\work\wctposdemo\app\build.gradle'.
> startup failed:
General error during semantic analysis: Unsupported class file major version 57
Jeśli spróbuję z:
.\gradlew.bat --recompile-scripts
Po prostu pojawia się błąd
Unknown command-line option '--recompile-scripts'.