Próbuję zintegrować logowanie Google, w mojej aplikacji dodałem te biblioteki:
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
Dodaj to również do gradle kompilacji projektu:
classpath 'com.google.gms:google-services:1.4.0-beta3'
Dodaj także wtyczkę do gradle budowania aplikacji:
apply plugin: 'com.google.gms.google-services'
następnie dodaj wymagane uprawnienia, ale kiedy próbuję uruchomić moją aplikację, otrzymałem ten błąd:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException:
org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2
źródło
Inną rzeczą, na którą należy zwrócić uwagę, jest to, że nie używasz
Spowoduje to zaimportowanie WSZYSTKICH usług odtwarzania, a przekroczenie limitu metody 65535 pojedynczego pliku APK dex zajmie niewiele więcej niż hello world.
Zawsze określaj tylko te usługi, których potrzebujesz, na przykład:
źródło
Po prostu musiałem wyczyścić mój projekt, a następnie został pomyślnie zbudowany.
źródło
Ten błąd zaczął się pojawiać, gdy dodałem nowe metody do mojego projektu. Wiedziałem, że nie zbliżam się do limitu metody 65k i nie chcę włączać obsługi multiDex dla mojego projektu, gdybym mógł na to poradzić.
Rozwiązałem to, zwiększając pamięć dostępną dla
:app:transformClassesForDexForDebug
zadania. Zrobiłem to, określając javaMaxHeapSize wgradle.build
.gradle.build
Próbowałem tego po tym, jak nie udało mi się z innymi typowymi rozwiązaniami tego problemu:
clean
/app/build
i/build
z mojego projektuBłąd
Uwaga: zwiększenie ilości pamięci dostępnej dla zadania DEX może spowodować problemy z wydajnością w systemach z mniejszą ilością pamięci - łącze .
źródło
Z podobnym problemem spotkałem się również w Android Studio 1.5.1 i Gradle 1.5.0. Muszę tylko usunąć niechciane biblioteki z zależności, które mogą być automatycznie dodawane w pliku build.gradle mojej aplikacji. Jednym z nich było: kompilacja „com.google.android.gms: play-services: 8.4.0”. Dlatego w celu uzyskania najlepszych praktyk spróbuj uwzględnić tylko określoną bibliotekę usług odtwarzania, na przykład tylko reklamy
Mimo że
to również rozwiąże problem, ale zapewnia wiele notatek w konsoli gradle, co utrudnia znalezienie innych rzeczywistych problemów podczas kompilacji
źródło
możesz zobaczyć dokumentację Androida
Manifest.xml
źródło
Używam AS 1.5.1 i napotkałem ten sam problem. Ale samo wyczyszczenie projektu po prostu się nie uda, więc spróbowałem.
To zadziałało ze mną, więc mam nadzieję, że to pomoże.
źródło
W moim przypadku zmień buildToolsVersion z „24” na „23.0.2”, rozwiąż problem.
źródło
W moim przypadku wyjątek wystąpił, ponieważ wszystkie rozszerzenia usług Google Play nie mają tej samej wersji, jak poniżej
Zadziałało, kiedy zmieniłem to na
źródło
Rozwiązałem to następnym:
Skonfigurowałem multidexW build.gradle musisz dodać następny.
Dodaj następny w local.properties
Następnie do klasy Application musisz dodać także Multidex.
Nie zapomnij dodać kodu linii do pliku Manifest.xml
To wszystko wystarczyło do rozwiązania błędu: nie powiodło się wykonanie zadania ': app: transformClassesWithDexForDebug. Sprawdź bardzo dobrze plik build.gradle za pomocą javaMaxHeapSize "2g", a local.properties org.gradle.jvmargs = -Xmx2048m mają 2 gigabajty.
źródło
Miałem ten sam problem, kiedy przywróciłem starą wersję przez git, a ta wersja miała poprzednią bibliotekę .jar jednego zewnętrznego interfejsu API iz jakiegoś powodu okazało się, że oba jar z tego samego sdk, tylko różne wersje były w folderze / libs .
źródło
Najpierw usuń pliki pośrednie TWÓJ FOLDER APLIKACJI \ app \ build \mediates LUB Wyczyść projekt, a następnie przebuduj.
Nie dodawaj
to znaczy
To dla mnie praca
źródło
Rozwiązałem ten problem, zmieniając na najnowszą
buildToolsVersion
źródło
Pomocna odpowiedź, jeśli powyższe nie działa.
Przejdź do pliku gradle aplikacji,
Sprawdź, czy wszystkie wersje zależności są wymienione z odpowiednim kodem wersji a nie z jakąkolwiek wartością względną, taką jak (com.example.demo: +)
Poprzednie - wdrożenie „com.google.api-client: google-api-client-android: +”
Po - implementacja „com.google.api-client: google-api-client-android: 1.30.0”
źródło
Jeśli używasz najnowszej wersji gradle, tj.
classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3'
Spróbuj zaktualizować najnowsze repozytorium pomocy technicznej z menedżera SDK i przebuduj cały projekt.źródło
Jeśli potrzebujesz dodać to odniesienie do wtyczki cordova, dodaj następną linię w pliku plugin.xml.
źródło
Jeśli różne zależności mają ten sam plik jar, również powoduje ten błąd kompilacji.
Na przykład:
Jeśli „biblioteka1” i „biblioteka2” mają taką samą nazwę jar
xxx.jar
, spowoduje to taki błąd.źródło
Zdarzyło mi się to z powodu wycieku pamięci Eclipse. Musiałem zrestartować komputer.
źródło
Zmieniłem kilka png i numer kompilacji w gradle i teraz to rozumiem. Nie pomogło żadne czyszczenie i ponowne uruchamianie. Wyłączenie Instant Run rozwiązało problem. YMMV
źródło
Miałem tę samą opcję i jak tylko wyłączyłem Instant run, działało dobrze na moim urządzeniu API16, ale na urządzeniu API24 działało dobrze z Instant run.
Mam nadzieję, że pomoże to komuś, kto ma ten sam problem
źródło
Po prostu przejdź do Build - Edit Build Types - Properties - Build Type Version i obniżyć do wersji 23.0.1. Kliknij OK. Działa to w Android Studio 1.5. U mnie to zadziałało.
źródło
odpowiedź zapisu jest w gradle put defaultConfig {multiDexEnabled true}, a następnie nazwa aplikacji w manifeście android: name = "android.support.multidex.MultiDexApplication" Chciałbym, żeby ta odpowiedź była komuś pomocna
źródło
ten kod rozwiązał problem
Najłatwiejszy sposób na zaimplementowanie logowania google odwiedź: logowanie google w systemie Android
Spróbuj też
Zachowaj ten sam numer wersji dla różnych usług.
źródło
Rozwiązałem ten problem dodając: W
build.gradle
:w
local.properties
,wspomnij o zależności:
Oczyść i odbuduj.
źródło
Incase 'Instant Run' jest włączone, a następnie po prostu je wyłącz.
źródło