Kiedy klikam, aby uruchomić projekt, który właśnie utworzyłem w Android Studio 0.2.10 i wybieram mojego Androida (podłączony przez USB z debugowaniem przez USB), pojawia się ten błąd:
Waiting for device.
Target device: 0123456789ABCDEF
Uploading file
local path: /Users/Rui/AndroidStudioProjects/FirstAppProject/FirstApp/build/apk/FirstApp-debug-unaligned.apk
remote path: /data/local/tmp/rui.firstapp
Installing rui.firstapp
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/rui.firstapp"
pkg: /data/local/tmp/rui.firstapp
Failure [INSTALL_FAILED_INVALID_APK]
Masz jakiś pomysł, co to może być?
android
android-studio
RuiG
źródło
źródło
MinSDK
iTargetSDK
w swoim manifeście. Czy próbowałeś zainstalować to w emulatorze? Spowoduje to zawężenie, czy problem dotyczy pliku APK, czy urządzenia.Odpowiedzi:
Dostawałem to w Android Studio i wszystko, co zrobiłem, aby to naprawić, to poszło
"Build" > "Clean Project"
i po prostu działało.źródło
./gradlew clean
zwykłe polecenie kompilacjiPo prostu usuń stary pakiet APK android / app / build / output / apk / debug / app-debug.apk z folderu. to wszystko. miłego kodowania ...
źródło
rm -fr android/app/build/outputs/apk/debug/
Kiedyś napotkałem podobny problem, zauważyłem, że nazwa pakietu w moim Androidmanifest.xml została rozpoczęta od jednego pustego znaku spacji.
like " com.example.test" instead of "com.example.test"
Usunąłem wszystkie takie nieprawidłowe spacje z mojego pliku manifestu, rozwiązało to mój problem
Edycja 1 : „-” w nazwie pakietu również powoduje ten sam problem w niektórych wersjach Androida
źródło
invalidate cache and restart
że wymusi to czystą konstrukcję, ale najwyraźniej tak nie jest.Miałem ten sam problem, ale żadne z rozwiązań nie zadziałało. Problem polegał na tym, że nie miałem . separatory w nazwie mojego pakietu.
tzn. jeśli nazwa twojego pakietu to moja.nazwa_pakietu, wszystko w porządku, ale nie może to być po prostu moja_nazwa_pakietu.
Mam wskazówkę z tego raportu o błędzie.
https://code.google.com/p/android/issues/detail?id=55841
źródło
Jeśli ktoś nadal ma problem, to Kompiluj-> Wyczyść projekt, a następnie Kompiluj-> Odbuduj projekt w końcu Synchronizuj projekt z plikiem Gradle .
źródło
Jak rozwiązać ten problem:
RootExplorer
tmp
folder na karcie SDLink
ten folder (ostatnia opcja w menu)/data/local/
i dotknij przyciskuCREATE LINK
od dołuźródło
Miałem ten problem i żadne z powyższych rozwiązań nie zadziałało.
Z jakiegoś powodu uprawnienia w moim
/data/local/tmp
katalogu nie zostały ustawione poprawnie (tylko root miał rwx). Naprawiłem problem za pomocą ADB (będziesz potrzebować zrootowanego urządzenia):adb shell
/data/local
używaniacd /data/local
su
tmp
katalogu przy użyciuchmod 777 tmp
źródło
Wyłączenie Instant Run rozwiązało mój problem. Do tej pory nie znam żadnego wyjaśnienia. Po migracji do Android Studio 3.0 zaczyna się taki problem. Mam nadzieję, że to pomoże komuś w przyszłości.
źródło
Kiedy napotkałem ten problem, naprawiłem go, upewniając się, że nazwa pakietu AndroidManifest.xml jest taka sama, jak identyfikator aplikacji build.grade.
źródło
Znalazłem inny powód tego błędu. Jeśli zrootowałeś swoje urządzenie, uprawnienia dostępu do / data / local / tmp mogą ulec zmianie, więc adb nie może uzyskać dostępu do tego pliku tymczasowego. Rozwiązaniem jest utworzenie folderu „tmp” na karcie SD i utworzenie do niego dowiązania symbolicznego w / data / local / (przez powłokę ADB lub Root Explorer).
źródło
Jeśli piszesz
android:extractNativeLibs="false"
w pliku AndroidManifest. następnie zmień go naandroid:extractNativeLibs="true"
źródło
Pomogło to w moim przypadku:
Settings -> Apps -> Google Play Store -> Click "Enable" button.
źródło
Wypróbowałem większość z powyższych rozwiązań (prostych, nie oferujących chmod i zmieniających biblioteki wewnętrzne) i żadne z nich nie działa
Ostatecznie zadziałało dla mnie: „Wyczyść projekt” -> „Przebuduj projekt” -> zmieniono nazwę wersji aplikacji w module aplikacji build.gradle -> Synchronizuj Gradle -> Uruchom aplikację na urządzeniu
źródło
Napotkałem ten problem z powodu niezgodnych wariantów kompilacji. Moduł dynamicznego dostarczania był w wariancie debugowania, podczas gdy pozostałe moduły były w wersji. Po prostu zmiana modułu Dynamic Delivery na wydanie, przebudowanie i zainstalowanie rozwiązała problem.
źródło
W przypadku projektów Flutter za pomocą edytora VS Code przejdź do folderu źródłowego projektu, usuń folder „build” i rozpocznij debugowanie.
źródło
Mam ten problem w projekcie z Daggerem i wieloma modułami. To, co zadziałało (żadne z powyższych nie działało), to 1) opróżnienie folderu .gradle 2) opróżnienie folderu .idea 3) W projekcie gradle.properties zaznacz org.gradle.caching = false 4) Możliwe unieważnienie pamięci podręcznych w AS , wyczyść, odbuduj
Możesz uciec z numerem 3, wyczyść, a następnie zbuduj.
EDYCJA: Ostatnio udało mi się to obejść, ponownie uruchamiając AS, a następnie czyszcząc i instalując ponownie.
źródło
./gradlew installDebug
wiersza poleceńPrzyczyną tego problemu było dla mnie wybranie niewłaściwego wariantu kompilacji dla jednego z modułów mojej aplikacji. Z narzędzia „Build Variants” wybrałem wariant modułu, który pasował do modułu aplikacji, i rozwiązałem problem.
źródło
Miałem ten problem na Android Studio, ponieważ w mojej kompilacji debugowania dodałem sufiks nazwy wersji -DEBUG i - był problem.
Staraj się mieć tylko litery, cyfry i kropki w nazwach wersji i identyfikatorach aplikacji
źródło
Nawigować do
Run/Debug Configurations
Kliknij Uruchom na górnej karcie> Edytuj konfiguracje
źródło
Po prostu miałem ten sam błąd. Miałem rok 2015 w identyfikatorze aplikacji. Zamieniłem 2015 na piętnaście i to rozwiązało problem.
Ponadto, jeśli używasz Android Studio, możesz spróbować: Narzędzia / Android / Synch Project with Gradle Files
źródło
Wymuś zatrzymanie aplikacji w ustawieniach urządzenia.
źródło
Miałem ten problem i żadne z powyższych rozwiązań nie zadziałało.
Powodem jest prawdopodobnie telefon w wersji root, który ma dostępne uprawnienia do przydziału lub instalacji apk tylko na karcie SD.
Naprawiłem problem za pomocą ADB (będziesz potrzebować zrootowanego urządzenia):
źródło
Wydaje się, że przyczyn tego niepowodzenia jest wiele. Dla mnie problem polegał na tym, że w pliku AndroidManifest odwoływałem się do nieistniejącej biblioteki (tylko w tym konkretnym urządzeniu) za pomocą tagu „uses-library”. Po usunięciu biblioteki, której to urządzenie nie miało, apk został poprawnie zainstalowany.
źródło
Użyłem archetypu androidquickstart maven i napotkałem ten sam problem:
Nazwa mojego pakietu była jedynym androidquickstart. Zgodnie z wcześniejszymi wskazówkami
package="androidquickstart"
siępackage="androidquickstart.test"
i odpowiednio usuwane próbę od innych części xml<activity android:name=".test.HelloAndroidActivity" >
do<activity android:name=".HelloAndroidActivity" >
źródło
Nazwa Twojego pakietu powinna zawierać słowa połączone kropkami, takie jak com.example lub prashant.mydairy ..... teraz powinno działać dobrze
Pliki, w których należy zaktualizować nazwę pakietu, są następujące: 1) Plik manifestu 2) Plik Gradle (moduł appp): identyfikator aplikacji "nazwa_pakietu"
źródło
Nazwa taskAffinity musi mieć co najmniej jeden znak „.” separator
źródło
Jeśli masz dostęp do konsoli urządzenia (powłoki adb), zmień uprawnienia następujących:
Możesz także spróbować skopiować apk,
/data/local/
w takim przypadku upewnij się, że ustawiłeś również odpowiednie uprawnienia do apk .źródło
Wygląda na to, że przyczyną była liczba po kropce .
Miałem ten sam problem z następującym applicationId
org.tony.stark.125jarvis
Zmieniam to na
org.tony.stark.jarvis
Udało mi się zainstalować aplikację na urządzeniach z Androidem.
źródło
Można dostać ten błąd, jeśli
minSdkVersion
wbuilde.gradle
jest większy niż urządzenia wersji Androida. W takim przypadku musisz zmodyfikować plikminSdkVersion
.źródło
usuń kod w AndroidManifest.xml:
narzędzia: replace = "android: appComponentFactory" android: appComponentFactory = ""
to działa.
źródło