명령 줄을 통해 실제로 apk를 성공적으로 설치할 수 없습니다.
Pixel 3XL은 adb를 통해 앱을 설치할 수 없지만 AS 실행을 사용하여 앱을 설치할 수 있습니다. 명령 줄을 사용하여 apk를 설치하고 성공적이라고 말했습니다. 하지만 런처에서 아이콘이 보이지 않았습니다. 또한 설치된 APK를 나열하려고 할 때 목록에 없습니다.
WM-C02WM0T3HTD8:~ zgong$ adb shell cmd package list packages | grep `common_string_in_package_name_with_installed_app_package` package:A package:B package:C package:D WM-C02WM0T3HTD8:~ zgong$ adb install XXXX.apk
Performing Streamed Install
Success
WM-C02WM0T3HTD8:~ zgong$ adb shell cmd package list packages | grep `common_string_in_package_name_with_installed_app_package`
package:A
package:B
package:C
package:D
새 패키지가 설치되지 않았습니다.
WM-C02WM0T3HTD8:~ zgong$ adb shell cmd package list packages | grep `unique string_in_package_name`
새 패키지가 설치되지 않았습니다.
이 문제가 발생하는 것이 너무 이상합니다.
adb를 사용하여 다른 Android 기기에 APK를 설치할 수 있습니다. Android 4.0.1을 사용하고 있습니다.
누구든지 그것을 고치는 방법을 알고 있습니까?
업데이트 1 :
commen은 adb install이 adb shell pm install
. 나는 adb shell pm
옵션 매뉴얼을 얻기 위해 실행한다 . 디버그에 도움이 될 수있는 옵션이없는 것 같습니다.
WM-C02WM0T3HTD8:android_vdca zgong$ adb shell pm
Package manager (package) commands:
help
Print this help text.
install [-rtfdgw] [-i PACKAGE] [--user USER_ID|all|current]
[-p INHERIT_PACKAGE] [--install-location 0/1/2]
[--install-reason 0/1/2/3/4] [--originating-uri URI]
[--referrer URI] [--abi ABI_NAME] [--force-sdk]
[--preload] [--instant] [--full] [--dont-kill]
[--enable-rollback]
[--force-uuid internal|UUID] [--pkg PACKAGE] [-S BYTES]
[--apex] [--wait TIMEOUT]
[PATH [SPLIT...]|-]
Install an application. Must provide the apk data to install, either as
file path(s) or '-' to read from stdin. Options are:
-R: disallow replacement of existing application
-t: allow test packages
-i: specify package name of installer owning the app
-f: install application on internal flash
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (new split on top of existing pkg)
-g: grant all runtime permissions
-S: size in bytes of package, required for stdin
--user: install under the given user.
--dont-kill: installing a new feature split, don't kill running app
--restrict-permissions: don't whitelist restricted permissions at install
--originating-uri: set URI where app was downloaded from
--referrer: set URI that instigated the install of the app
--pkg: specify expected package name of app being installed
--abi: override the default ABI of the platform
--instant: cause the app to be installed as an ephemeral install app
--full: cause the app to be installed as a non-ephemeral full app
--install-location: force the install location:
0=auto, 1=internal only, 2=prefer external
--install-reason: indicates why the app is being installed:
0=unknown, 1=admin policy, 2=device restore,
3=device setup, 4=user request
--force-uuid: force install on to disk volume with given UUID
--apex: install an .apex file, not an .apk
--wait: when performing staged install, wait TIMEOUT milliseconds
for pre-reboot verification to complete. If TIMEOUT is not
specified it will wait for 60000 milliseconds.
업데이트 2 :
apk를 기기에 복사합니다.
WM-C02WM0T3HTD8:android_vdca zgong$ adb push ~/Downloads/NonSIMCC-151-app-release-signed.apk /storage/emulated/0/Download/
/Users/zgong/Downloads/NonSIMCC-151-app-release-signed.apk: 1 file pushed. 12.7 MB/s (34493209 bytes in 2.597s)
pm install
adb 쉘을 통해 사용
255|crosshatch:/storage/emulated/0/Download $ pm install NonSIMCC-151-app-release-signed.apk avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0 System server has no access to read file context u:object_r:fuse:s0 (from path /storage/emulated/0/Download/NonSIMCC-151-app-release-signed.apk, context u:r:system_server:s0) Error: Unable to open file: NonSIMCC-151-app-release-signed.apk Consider using a file under /data/local/tmp/ Error: Can't open file: NonSIMCC-151-app-release-signed.apk Exception occurred while executing 'install': java.lang.IllegalArgumentException: Error: Can't open file: NonSIMCC-151-app-release-signed.apk at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:519) at com.android.server.pm.PackageManagerShellCommand.doRunInstall(PackageManagerShellCommand.java:1282) at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:1248) at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:184) at android.os.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:98) at android.os.ShellCommand.exec(ShellCommand.java:44) at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21605) at android.os.Binder.shellCommand(Binder.java:929) at android.os.Binder.onTransact(Binder.java:813) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4603)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4306)
at android.os.Binder.execTransactInternal(Binder.java:1159)
at android.os.Binder.execTransact(Binder.java:1123)
업데이트 3
crosshatch:/ $ cp /storage/emulated/0/Download/NonSIMCC-151-app-release-signed.apk /data/local/tmp/apk1.apk \crosshatch:/ $ ls -la /data/local/tmp
total 51656
drwxrwx--x 4 shell shell 3488 2020-11-19 10:13 .
drwxr-x--x 4 root root 3488 2019-11-19 14:53 ..
drwxrwxrwx 4 shell shell 3488 2020-11-10 13:55 .studio
-rw-rw---- 1 shell shell 34493209 2020-11-19 10:13 apk1.apk
-rw-rw-rw- 1 shell shell 4322329 1970-01-01 08:00 apk1592483766800.apk
-rw-rw-rw- 1 shell shell 4808820 1970-01-01 08:00 apk1597806836158.apk
-rw-rw-rw- 1 shell shell 4808820 1970-01-01 08:00 apk1597807282659.apk
-rw-rw-rw- 1 shell shell 4375675 1970-01-01 08:00 apk1599201485983.apk
drwxrwxrwx 5 shell shell 3488 2020-11-02 00:17 perfd
-rw-rw-rw- 1 shell shell 8 1970-01-01 08:00 vysor.pwd
crosshatch:/ $ pm install /data/local/tmp/ap apk1.apk apk1592483766800.apk apk1597806836158.apk apk1597807282659.apk apk1599201485983.apk crosshatch:/ $ pm install /data/local/tmp/apk1.apk
Success
crosshatch:/ $ exit
실제로 설치되었는지 확인하려면
WM-C02WM0T3HTD8:android_vdca zgong$ /Users/zgong/Library/Android/sdk/build-tools/29.0.3/aapt2 dump packagename ~/Downloads/NonSIMCC-151-app-release-signed.apk
com.nonsimcc.vmcp
WM-C02WM0T3HTD8:android_vdca zgong$ adb shell cmd package list packages | grep vmcp
여전히 실제 설치에 실패했습니다.
업데이트 4
Pixel 3XL 기기를 재부팅하려고했습니다. 여전히 불운.
업데이트 5
방금 테스트하고 이상한 결과를 얻었습니다.
Android Studio에서 실행을 클릭하면 앱이 설치되고 실행될 수 있습니다.
WM-C02WM0T3HTD8:mep_login_android zgong$ adb shell cmd package list packages | grep com.visa.mobileEnablement.loginFeatureDemo
package:com.visa.mobileEnablement.loginFeatureDemo
Android Studio의 실행 섹션에서
11/19 11:51:07: Launching 'demoApp' on Google Pixel 3 XL.
Install successfully finished in 1 s 290 ms.
$ adb shell am start -n "com.visa.mobileEnablement.loginFeatureDemo/com.visa.mobileEnablement.loginFeatureDemo.DemoActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 27798 on device 'google-pixel_3_xl-8BBY0WYAG'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
Run에서 빌드 한 동일한 apk를 사용하고 adb install
WM-C02WM0T3HTD8:mep_login_android zgong$ adb install -t demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk
Performing Streamed Install
Success
WM-C02WM0T3HTD8:mep_login_android zgong$ adb shell cmd package list packages | grep com.visa.mobileEnablement.loginFeatureDemo
adb install
와 Android Studio 설치 프로세스 의 차이점은 무엇입니까 ?
업데이트 6 :
이미 USB 디버깅 인증을 취소하려고 시도했습니다. 여전히 불운입니다.
WM-C02WM0T3HTD8:mep_login_android zgong$ adb install -t demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apkPerforming Streamed Install
Success
WM-C02WM0T3HTD8:mep_login_android zgong$ adb shell cmd package list packages | grep com.visa.mobileEnablement.loginFeatureDemo
또한 개발자 옵션을 닫고 다시 열었습니다. USB 기본 설정-USB 사용, PTP 또는 데이터 전송 없음을 선택합니다. 여전히 불운
WM-C02WM0T3HTD8:mep_login_android zgong$ adb install -t demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apkPerforming Streamed Install
Success
WM-C02WM0T3HTD8:mep_login_android zgong$ adb shell cmd package list packages | grep com.visa.mobileEnablement.loginFeatureDemo
업데이트 7 :

제가해야 할 OS 업데이트가 있다는 것을 알게되었습니다.

업데이트 7
일치하지 않는 abi로 인해 에뮬레이터에 설치할 때 "adb install"이 작동하지 않습니다.
AVD를 만듭니다.
Name: Pixel_3_XL_API_Q
CPU/ABI: Google APIs Intel Atom (x86)
Path: /Users/zgong/.android/avd/Pixel_3_XL_API_Q.avd
Target: google_apis [Google APIs] (API level Q)
Skin: pixel_3_xl
fastboot.chosenSnapshotFile:
runtime.network.speed: full
hw.accelerometer: yes
hw.device.name: pixel_3_xl
hw.lcd.width: 1440
image.androidVersion.codename: Q
hw.initialOrientation: Portrait
image.androidVersion.api: 28
tag.id: google_apis
hw.mainKeys: no
hw.camera.front: emulated
avd.ini.displayname: Pixel 3 XL API Q
hw.gpu.mode: auto
hw.ramSize: 8192
PlayStore.enabled: false
fastboot.forceColdBoot: no
hw.cpu.ncore: 4
hw.keyboard: yes
hw.sensors.proximity: yes
hw.dPad: no
hw.lcd.height: 2960
vm.heapSize: 4096
skin.dynamic: yes
hw.device.manufacturer: Google
hw.gps: yes
hw.audioInput: yes
image.sysdir.1: system-images/android-Q/google_apis/x86/
showDeviceFrame: yes
hw.camera.back: virtualscene
AvdId: Pixel_3_XL_API_Q
hw.lcd.density: 560
hw.arc: false
hw.device.hash2: MD5:9bbaa408d4a8691920c4057ef7844f35
fastboot.forceChosenSnapshotBoot: no
fastboot.forceFastBoot: yes
hw.trackBall: no
hw.battery: yes
hw.sdCard: no
tag.display: Google APIs
runtime.network.latency: none
disk.dataPartition.size: 40G
hw.sensors.orientation: yes
avd.ini.encoding: UTF-8
hw.gpu.enabled: yes
Android Studio에서 빌드 한 것과 동일한 apk를 설치하려고했습니다.
WM-C02WM0T3HTD8:mep_login_android zgong$ adb -e install -t -r demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk
Performing Streamed Install
adb: failed to install demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
업데이트 8 : 다른 장치에 설치할 때 "adb install"작동
따라서 동일한 빌드를 사용하여 다른 Pixel 3 기기에 설치합니다. 올바르게 설치할 수 있습니다.
WM-C02WM0T3HTD8:mep_login_android zgong$ adb -d install -t demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk
Performing Streamed Install
Success

이런 식으로 빌드의 용의자를 제외합니다.
업데이트 9 :
이전에 작동하지 않았던 Pixel 3XL의 경우 :
WM-C02WM0T3HTD8:mep_login_android zgong$ /Users/zgong/Library/Android/sdk/build-tools/29.0.3/aapt2 dump packagename demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk
com.visa.mobileEnablement.loginFeatureDemo
WM-C02WM0T3HTD8:mep_login_android zgong$ adb -d uninstall com.visa.mobileEnablement.loginFeatureDemo Success WM-C02WM0T3HTD8:mep_login_android zgong$ adb install demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk
error: more than one device/emulator
Performing Push Install
adb: error: failed to get feature set: more than one device/emulator
WM-C02WM0T3HTD8:mep_login_android zgong$ adb -d install demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk Performing Streamed Install adb: failed to install demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI] WM-C02WM0T3HTD8:mep_login_android zgong$ adb -d install -t demoApp/build/outputs/apk/classic/debug/demoApp-classic-debug.apk
Performing Streamed Install
Success
WM-C02WM0T3HTD8:mep_login_android zgong$ adb shell cmd package list packages | grep visaerror: more than one device/emulator WM-C02WM0T3HTD8:mep_login_android zgong$ adb -d shell cmd package list packages | grep com.visa.mobileEnablement.loginFeatureDemo
package:com.visa.mobileEnablement.loginFeatureDemo
이제 Launcher에서 아이콘을 볼 수 있고 앱을 실행할 수 있습니다. 정말 놀랍습니다.
답변
apk ( adb uninstall
)를 제거한 후 adb install
다시 실행하면 수정 됩니다.
WM-C02WM0T3HTD8:Downloads zgong$ adb -d install ~/Downloads/NonSIMCC-151-app-release-signed.apk Performing Streamed Install Success WM-C02WM0T3HTD8:Downloads zgong$ /Users/zgong/Library/Android/sdk/build-tools/29.0.3/aapt2 dump packagename ~/Downloads/NonSIMCC-151-app-release-signed.apk
com.nonsimcc.vmcp
WM-C02WM0T3HTD8:Downloads zgong$ adb -d shell cmd package list packages | grep com.nonsimcc.vmcp WM-C02WM0T3HTD8:Downloads zgong$ adb uninstall com.nonsimcc.vmcp
error: more than one device/emulator
- waiting for device -
error: more than one device/emulator
WM-C02WM0T3HTD8:Downloads zgong$ adb -d uninstall com.nonsimcc.vmcp Success WM-C02WM0T3HTD8:Downloads zgong$ adb -d shell cmd package list packages | grep com.nonsimcc.vmcp
WM-C02WM0T3HTD8:Downloads zgong$ adb -d install ~/Downloads/NonSIMCC-151-app-release-signed.apk Performing Streamed Install Success WM-C02WM0T3HTD8:Downloads zgong$ adb -d shell cmd package list packages | grep com.nonsimcc.vmcp
package:com.nonsimcc.vmcp
빌드로 이동 한 다음 번들 / APK를 빌드 한 다음 APK를 빌드합니다.
