Zaktualizowałem Android Studio do wersji 3.5, odkąd mam problem z instalacją APK. To jedyny dziennik, który pokazuje:
Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation failed due to: 'null'
Retry
Dzieje się tak, gdy próbujesz zainstalować pakiet APK na prawdziwym urządzeniu. Jeśli odinstaluję aplikację z urządzenia, a następnie ponownie uruchomię kompilację, zostanie ona zainstalowana tylko raz, a następnie będzie zgłaszać ten błąd przy następnej instalacji. Działa dobrze na emulatorze, ale nie mogę użyć emulatora do wszystkiego.
Co próbowałem:
- Usunięto plik konfiguracyjny Android Studio.
- Usunięte pliki Gradle z projektu.
- Unieważnione i zresetowane pamięci podręczne.
- Oczyszczono / odbudowano projekt.
- Szukałem podobnych problemów Stackoverflow (nic nie pasuje do mojego problemu)
- Czysta instalacja (usunięto wszystkie pliki, w tym zestawy SDK) Android Studio 3.5
Aktualizacja
Zainstalowałem Linux Mint na moim komputerze i przetestowałem tam AS 3.5, z jakiegoś powodu wszystko działa dobrze nawet na urządzeniach z Androidem 7 i starszymi.
Poprzedni system operacyjny: Windows 10 1903
Bieżący system operacyjny: Linux Mint 19.2
Myślę, że ten problem może pochodzić z komputerów z systemem Windows.
źródło
INSTALL_PARSE_FAILED_NOT_APK
podczas testów EspressoINSTALL_PARSE_FAILED_NOT_APK
Odpowiedzi:
Otwórz konfigurację uruchamiania / debugowania okno dialogowe (Windows: Uruchom> Edytuj konfiguracje)
edytuj aplikację You> Ogólne> Opcje instalacji> Zainstaluj flagi .
dodaj flagi instalacji
-r -t
.Ta flaga oznacza
adb install -r -t apkpath
źródło
adb install -r -t apkpath
, jak sądzę. @ TaseerAhmad-r
oznacza „zastąp istniejącą aplikację”.-t
oznacza „zezwalaj na pakiety testowe”Musisz wyłączyć "Użyj zaplecza libusb" w preferencjach -> debugger
źródło
Ten problem w Android Studio występuje na urządzeniach niższych niż
API 26
(Android 8). Jest to spowodowane zastąpieniemInstantRun
, znanym teraz jako ApplyChanges .Wydaje się, że są tylko dwa sposoby, zanim naprawią to w następnej aktualizacji.
API>=26
.run configuration
zmianadeploy
zAPK
naApp bundle
i odwrotnie. Jeśli dobrze rozumiem, to poprawnie odbuduje aplikację i obejdzie błąd.Oczywiście istnieje możliwość ręcznego usunięcia aplikacji z urządzenia przed uruchomieniem aplikacji z AndroidStudio.
źródło
API26+
jeśliApply changes
zamiast tego kliknieszrerun
? To jest nowy przycisk po prawej stroniererun
.Dla mnie albo odinstalowanie aplikacji, albo wyczyszczenie projektu "rozwiązuje" problem. Aby było to mniej frustrujące, dodałem czyste zadanie do debugowania typu kompilacji w następujący sposób:
buildTypes { ... debug { clean } ... }
źródło
Po przeczytaniu uwag do wydania dotyczących stosowania zmian w końcu znalazłem rozwiązanie tutaj: https://developer.android.com/studio/run#apply-changes-run-fallback
źródło
Wystąpił problem z Lineage OS określony przez zespół Google na https://issuetracker.google.com/issues/139782879 :
Nie ma oczywistego rozwiązania (poza usunięciem APK z folderu kompilacji lub odinstalowaniem aplikacji).
Zmiana na
Nothing
wskazaną przez OP nie spowoduje wdrożenia APK na urządzeniu (dlatego błąd nie zostanie wyświetlony), więc nie rozwiąże problemu.Edytować:
Zostało to naprawione w Android Studio 3.6.
źródło
Buduj> Czysty projekt to dla mnie praca. Przed zmianą innych ustawień spróbuj najpierw tego.
Miłego kodowania :)
źródło
Dostałem rozwiązanie w kodzie edytuj, uruchom konfigurację zmieniającą się we wdrażaniu, wybierz domyślny plik APK i zainstaluj flagę = -r -t, a następnie Zastosuj do uruchomienia. Aplikacja będzie działać na wszystkich urządzeniach i emulatorze. Byłem testowany w OPPO 1 plus, Samsung Tab, Emulator również .
Proszę, pomyśl, że konfiguracja Edytuj Uruchom blisko uruchomienia w Android Studio
edytuj aplikację> ogólne ==> opcje instalacji ==> Zainstaluj flagi
dodaj flagi instalacji -r -t
-r oznacza „zastąp istniejącą aplikację”. -t oznacza „zezwalaj na pakiety testowe”
źródło
Ja też mam ten sam problem po uaktualnieniu do 3.5. Zastanawiałem się, czy miałeś szczęście, aby „Uruchom” działało z podłączonym urządzeniem?
AKTUALIZACJA: miałem to uruchomić, ustawiając „APK z pakietu aplikacji” w obszarze Opcje instalacji w oknie dialogowym „Konfiguracje uruchamiania / debugowania”
źródło
Usunięcie / odinstalowanie aplikacji z urządzenia rozwiązało problem.
źródło
Dodaj „ czystą ” zależność zadania gradle przed zainstalowaniem / uruchomieniem apek, używając poniższej konfiguracji.
project.afterEvaluate { android.applicationVariants.all { variant -> variant.outputs.each { output -> def capitalizedVariant = variant.name.capitalize() def assembleVariantTask = project.tasks."assemble${capitalizedVariant}" assembleVariantTask.dependsOn clean } } }
Skopiuj i wklej powyższy kod do swojego
app/build.gradle
pliku, działa to dla wszystkich wariantów kompilacji.W szczególności powyższy kod będzie równoważny z poniższym, jeśli masz tylko typy kompilacji do debugowania i wydania:
assembleDebug.dependsOn clean assembleRelease.dependsOn clean
źródło
Co mi pomogło, aby usunąć starą aplikację, a następnie ponownie uruchomić projekt. W takim przypadku stary certyfikat podpisu nie przeszkadza.
źródło
Otrzymałem również ten błąd, gdy uruchomiłem aplikację na prawdziwym xiaomi pocophone 1 i rozwiązałem ten problem, uruchamiając aplikację najpierw na emulatorze, a następnie na moim xiaomi pocophone 1
źródło
splits { abi { enable true reset() include 'x86', 'armeabi-v7a','x86_64' universalApk true } }
Ze względu na różne konstrukcje, takie jak „armeabi”, „x86”, „armeabi-v7a”, „x86_64” i „arm64-v8a”, musimy dodać powyższą konfigurację do pliku build.gradle.
źródło
W końcu znalazłem rozwiązanie
po prostu ustaw v2SigningEnabled na wartość true
signingConfigs { release { v2SigningEnabled true } }
źródło
Sam nie zmierzyłem się z tym problemem. Jednak wcześniej mieliśmy pewne problemy z natychmiastowym uruchomieniem Android Studio. Chciałbym zasugerować sprawdzenie następujących ustawień w Twoim Android Studio i odznaczenie ustawień, aby sprawdzić, czy Twój kod teraz działa.
Przejdź do,
Android Studio -> Preference
a następnie odznacz następujące podDeployments
.Oto co nowego w Android Studio 3.5 w tym zakresie, które pomoże ci lepiej zrozumieć tę funkcję.
źródło
Spróbuj uruchomić polecenie „urządzenia adb”, jeśli wyjście jest puste, a następnie ponownie podłącz urządzenie. Pomogło mi to z tym samym błędem. Android Studio 3.5 nie stwierdza, że urządzenie się rozłączyło.
źródło
Odinstalowałem aplikację z emulatora, uruchomiłem i wszystko wróciło do normy
źródło
Dla mnie
minSdkVer = 22, tarSdkVer = 28
działajGradle -> app -> Tasks -> build -> clean && cleanBuildCache
, problem rozwiązany.źródło
Nacisnąłem ikonę młotka, aby odbudować aplikację, a następnie ją zainstalowałem. Więc nie wiem? Cała platforma android hack job jest do bani.
Wszystkie te pieniądze, ale Google nie może zatrudnić ani znaleźć programistów wystarczająco dobrych, aby wymyślili własny prawdziwy system operacyjny.
źródło
Miałem również do czynienia z tym samym problemem, wykonałem następujące kroki 1) Wyczyść projekt 2) Przebudowany projekt
To rozwiązało mój problem
źródło
W moim przypadku nie mogę rozwiązać wszystkich powyższych odpowiedzi, więc znajduję inny sposób. Wreszcie znalazłem rozwiązanie. Po prostu znajdź odpowiednie sterowniki telefonu. Mój telefon rozwojowy to Samsung Galaxy Note 2 (MODEL: GT-N7105 / Android 4.1.2) . Po prostu dzielę się moim rozwiązaniem, jak to rozwiązałem. Mam nadzieję, że zaoszczędzisz czas.
źródło
Problem występuje podczas testowania nowego modułu. Najpierw piszesz go indywidualnie, a następnie dodajesz do głównej aplikacji. Po dodaniu go do głównej aplikacji usuń „test_app” z telefonu.
źródło
Uruchom -> Edytuj konfigurację -> zainstaluj flagi: -r -t -> Zastosuj -> OK
źródło
W moim przypadku działa tylko po wyłączeniu weryfikacji podpisu APK:
$ adb shell settings put global verifier_verify_adb_installs 0
I używając
-r -t
flag wymienionych powyżejźródło
Ten błąd nadal występuje na moim Mac OS, kiedy dostaję nowe prawdziwe urządzenie i próbuję zainstalować apk z Android Studio 3.5 - i znajduję brzydki sposób, jak to naprawić - otwórz terminal w studio i wykonaj:
cd app/build/outputs/apk/debug adb install -r -t your_app_name.apk
I to musi mieć związek z każdym projektem i każdym urządzeniem !!
Edytowano:
W końcu zainstalowałem
Ale nadal trzeba dodać flagi instalacyjne
-r -t
źródło
Wystąpił ten problem kilka minut temu, kiedy próbowałem uruchomić aplikację na prawdziwym urządzeniu i zatrzymałem kompilację gradle, zanim się skończyło. Właśnie odinstalowałem aplikację na urządzeniu i uruchomiłem ją ponownie na AVD i prawdziwym urządzeniu (jednocześnie) i zadziałało. Mam nadzieję, że to działa również dla Ciebie
źródło
Główne rozwiązanie
Plik -> Ustawienia -> Kompilacja, wykonanie, wdrożenie -> Debugger > Wyłącz
Use libusb backend
Gradle (Klapka po prawej stronie IDE) -> android -> aplikacja -> Zadania -> zainstaluj -> odinstaluj wszystko lub możesz to również zrobić za pomocą konsoli w następujący sposób:
$ ./gradlew uninstallAll
Inne wskazówki:
Usuń i ponownie utwórz aplikację w konfiguracji uruchamiania / debugowania
Konfiguracja uruchamiania / debugowania -> Opcje uruchamiania> Uruchom: określone działanie> Wybierz działanie
Zainstaluj aplikację za pomocą innego fizycznego urządzenia, wersji IDE lub komputera
Zainstaluj ponownie IDE i usuń .android
Spróbuj ponownie z głównym rozwiązaniem
Jeśli chcesz zainstalować i otworzyć aplikację, możesz użyć adb za pomocą następujących poleceń:
$ adb install -r -t absolute-path.apk $ adb shell am start -n "com.package.flavor.env/.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
GL
Źródło
źródło
spróbuj zmienić android:
appComponentFactory=""
naandroid:appComponentFactory="new"
,"new"
mogą być dowolne słowaźródło
Ostatecznie otrzymałem rozwiązanie w kodzie edytuj uruchom konfigurację zmieniającą się w opcji Instalacja DEPLOY -> z wybierz 4 opcję -> (Nothing) opcja -> Apply I aplikacja działa poprawnie w Android Studio 3.5. W wersji mobilnej i emulatorze również. To działa poprawnie w Androidzie w wersji 9 również Jest to trwałe rozwiązanie.
źródło