실패 [INSTALL_FAILED_INVALID_APK]
방금 Android Studio 0.2.10에서 만든 프로젝트를 클릭하여 실행하고 Android (USB로 디버그를 켜고 USB로 연결됨)를 선택하면 다음 오류가 발생합니다.
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]
그것이 무엇인지에 대한 아이디어가 있습니까?
나는 이것을 Android Studio에서 얻었고 내가 그것을 고치기 위해 한 모든 "Build" > "Clean Project"것은 그냥 작동했습니다.
한 번 비슷한 문제가 발생했습니다. 내 Androidmanifest.xml의 패키지 이름이 하나의 빈 공백 문자로 시작되었습니다. like " com.example.test" instead of "com.example.test"
내 매니페스트 파일에서 잘못된 공간을 모두 제거하여 문제를 해결했습니다.
편집 1 : 패키지 이름의 '-'도 일부 Android 버전에서 동일한 문제를 일으킴
나는 같은 문제가 있었지만 어떤 해결책도 나를 위해 일하지 않았습니다. 문제는 . 내 패키지 이름의 구분 기호.
즉, 패키지 이름이 my.packagename이면 괜찮지 만 mypackagename 일 수는 없습니다
.이 버그 보고서에서 힌트를 얻었습니다.
https://code.google.com/p/android/issues/detail?id=55841
누군가 여전히 문제가있는 경우 Build-> Clean Project 다음 Build-> Rebuild project 마지막으로 Sync project with Gradle file .
이 문제를 해결하는 방법 :
- 설치
RootExplorer tmpSD 카드에 새 폴더 만들기- tmp 폴더를 길게 누르고이 폴더를 선택
Link합니다 (메뉴의 마지막 옵션). - 아래에서
/data/local/버튼으로 이동하여 누릅니다.CREATE LINK
나는이 문제가 있었고 위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다.
어떤 이유로 권한이 내 /data/local/tmp디렉토리에 올바르게 설정되지 않았습니다 (루트에만 rwx가 있음). ADB를 사용하여 문제를 해결했습니다 (루팅 된 기기가 필요합니다).
- USB를 통해 휴대폰 연결
- 다음을 사용하여 ADB 시작
adb shell - 로 이동
/data/local하여cd /data/local - 다음을 사용하여 루트 모드로 전환하십시오.
su - 다음을
tmp사용하여 디렉토리 에서 읽기 / 쓰기 / 실행 허용chmod 777 tmp - 연결을 끊고 Android Studio를 다시 시작한 다음 장치를 다시 연결하십시오.
Instant Run을 끄면 문제가 해결되었습니다. 지금까지 어떤 설명도 모릅니다. android studio 3.0으로 마이그레이션하면 다음과 같은 문제가 시작됩니다. 이것이 미래의 누군가에게 도움이되기를 바랍니다.
이 문제가 발생했을 때 문제를 해결 한 것은 AndroidManifest.xml 패키지 이름이 build.grade applicationId와 동일한 지 확인하는 것이 었습니다.
이 오류의 또 다른 이유를 찾았습니다. 루팅 한 경우 / data / local / tmp의 액세스 권한이 변경 될 수 있으므로 adb가 임시 파일에 액세스 할 수 없습니다. 해결책은 sdcard에 "tmp"폴더를 만들고 / data / local / (ADB 셸 또는 루트 탐색기를 통해)에 심볼릭 링크를 만드는 것입니다.
android:extractNativeLibs="false"AndroidManifest 파일에 쓰는 경우 . 다음으로 변경android:extractNativeLibs="true"
이것은 내 경우에 도움이되었습니다.
Settings -> Apps -> Google Play Store -> Click "Enable" button.
위의 대부분의 솔루션 (chmod를 제공하고 내부 라이브러리를 변경하는 것이 아닌 간단한 솔루션)을 시도했지만 아무것도 작동하지 않습니다.
결국 나를 위해 일한 것은 "Clean Project"-> "Rebuild Project"-> build.gradle 앱 모듈에서 앱 versionName 변경-> Sync Gradle-> 기기에서 앱 실행
내 디버그 빌드에서 버전 이름 접미사 -DEBUG를 추가 했고 - 가 문제 였기 때문에 Android Studio 에서이 문제 가 발생했습니다.
버전 이름과 애플리케이션 ID에는 문자, 숫자, 점만 사용하세요.
빌드 변형이 일치하지 않아이 문제가 발생했습니다. Dynamic Delivery 모듈은 디버그 변형에 있었고 나머지 모듈은 릴리스에있었습니다. Dynamic Delivery 모듈을 릴리스, 재 구축 및 설치로 변경하기 만하면 문제가 해결되었습니다.
이미 설치된 경우 이전 버전을 제거하고 다시 시도하십시오.
나는 단지 같은 오류가 있었다. 앱 ID에 2015 년이있었습니다. 나는 2015 년을 15로 대체했고 그것이 해결되었습니다.
또한 Android Studio를 사용하는 경우 도구 / Android / Gradle 파일과 프로젝트 동기화를 시도 할 수 있습니다.
장치 설정에서 응용 프로그램을 강제 종료 합니다.
나는이 문제가 있었고 위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다.
그 이유는 아마도 sdcard에서만 사용 가능한 할당량 또는 apk 설치 권한이있는 루트 버전 전화 일 것입니다.
ADB를 사용하여 문제를 해결했습니다 (루팅 된 장치가 필요합니다).
- USB를 통해 휴대폰 연결
- adb 셸을 사용하여 ADB 시작
- su를 사용하여 루트 모드로 전환
- sdcard에 tmp 폴더를 만듭니다. mkdir / sdcard / tmp
- cd / 데이터 / 로컬
- sdcard의 폴더에 링크를 만듭니다. ln -s / sdcard / tmp tmp
이 실패에는 여러 가지 이유가있는 것 같습니다. 나에게 문제는 AndroidManifest 파일에서 'uses-library'태그를 사용하여 존재하지 않는 라이브러리 (이 특정 장치에서만)를 참조했다는 것입니다. 이 장치에없는 라이브러리를 제거한 후 apk가 제대로 설치되었습니다.
I have used the androidquickstart maven archetype and faced the same problem:
My package name was an only androidquickstart. According to advices before
- I have changed the package to androidquickstart.test
- then in AndroidManifest.xml I have changed
package="androidquickstart"topackage="androidquickstart.test"and correspondingly removed test from other parts of xml<activity android:name=".test.HelloAndroidActivity" >to<activity android:name=".HelloAndroidActivity" > - and also fixed package issues in java files (highlighted by the IDE)
Your package name should include words combined by dots like com.example or prashant.mydairy..... it should work fine now
files where you must update ur package name are as below: 1)Manifest file 2)Gradle file(module appp): applicationId "package.name"
taskAffinity name must have at least one '.' separator
If you have access to the device console (adb shell), then change permissions of following:
- chmod 777 /data/
- chmod 777 /data/local/
You might also want to try copying the apk to/data/local/in which case, make sure the set the right permissions to the apk also. - chmod 777 /data/local/myapk.apk You can now attempt an installation by: pm install -r -d /data/local/myapk.apk (note the absolute path)
It looks like having a number after the dot was the culprit.
I had the same issue with the following applicationId
org.tony.stark.125jarvis
Changing it to
org.tony.stark.jarvis
I was able to install the app to the android devices.
You can get this error if the minSdkVersion in builde.gradle is bigger than the device's Android version. In that case you have to modify the minSdkVersion.
delete code in AndroidManifest.xml:
tools:replace="android:appComponentFactory" android:appComponentFactory=""
it works.
In my case, I get this error Failure [INSTALL_FAILED_INVALID_APK] when I try to install apk with pm install -r -d /sdcard/Download/foo.apk.
Since this package already uninstalled by pm uninstall <foo_package_name>, I try delete /data/local/tmp/<foo_package_name> but no luck.
I need reboot the android system to fixed. (Not sure remove data/local/tmp/<foo_package_name> step is necessary or not.)
[UPDATE]
It happen again just now, I try do not uninstall since I need to keep the apk inherit sdk 22 permission, so this time I use am force-stop <fook_package_name> to stop it first, then retry pm install, it fixed the error.
After a great update, check that the applicationId of the build.gradle (Module: app) and the package in AndroidManifest.xml are identical. I had the same problem and so I solved it.
I meet the similar issue, but it auto fixed after i reboot my Ubuntu PC,for I install some Ubuntu(12.04)app update,which leads to this issue.
I was facing this issue in android studio 3.4. By turning off the Instant Run solved my issue. Don't know any explanation till now. Hope this helps someone in future.
참고URL : https://stackoverflow.com/questions/19070816/failure-install-failed-invalid-apk
'programing tip' 카테고리의 다른 글
| 원격 서버에서 오류를 반환했습니다. (407) 프록시 인증 필요 (0) | 2020.11.03 |
|---|---|
| Objective-C에서 두 배열을 어떻게 결합합니까? (0) | 2020.11.03 |
| Sourcetree 원격 : 잘못된 사용자 이름 또는 암호 (0) | 2020.11.03 |
| 문자열의 모든 단어 수를 센다 (0) | 2020.11.03 |
| addClass-동일한 div에 여러 클래스를 추가 할 수 있습니까? (0) | 2020.11.03 |