Android Studio pm 安装中止
Android Studio pm install aborted
我正在尝试 运行 来自 android 工作室的我的 GS5 应用程序,我得到了这个:
Waiting for device.
Target device: samsung-sm_g900v-f3af9744
Uploading file
local path: D:\Android\Projects\TestProject\build\outputs\apk\TestProject-debug.apk
remote path: /data/local/tmp/com.brian.testproject
Installing com.datascan.mobilescripts
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.brian.testproject"
Aborted
好像是在拷贝文件到设备上,在/data/local/tmp目录下可以看到。它只是在 "pm install" 阶段失败了。
在phone我打开了USB调试并授权了电脑。这是我在 运行 ADB 设备时得到的结果:
D:\Android\sdk\platform-tools>adb devices
List of devices attached
f3af9744 device
所以这似乎是正确的。我不太确定问题出在哪里。 Google 搜索问题没有给我任何相关结果。
有谁知道如何获得 "Aborted" 以外的更多信息?感谢任何帮助,谢谢!
编辑:
正如@AlexP 所建议的。我运行"adb logcat -d -s PackageManager:*",结果是这样的:
D:\Android\sdk\platform-tools>adb logcat -d -s PackageManager:*
--------- beginning of main
--------- beginning of system
没什么帮助,但我确实决定观看 logcat,因为 pm 安装正在进行 运行,我发现了这个错误条目:
Tag=appproc | Text= ERROR: Could not find class 'com.android.commands.pm.Pm'
Tag=art | Text= art.runtime/thread.cc:1105] No pending exeption expected: java.lang.ClassNotFoundException: Didn't find class "com.android.commands.pm.Pm" on path: DexPathList[[zip file "/system/framework/pm.jar"],nativeLibraryDirectories=]/vendor/lib, /system/lib]]
接着是一大堆艺术错误条目。
看来我的 phone 好像遗漏了一些东西,也许吧?
可能的解决方案:
1. 检查您的应用程序是否留下任何数据:
首先如果应用已经安装,然后清除缓存数据并卸载它
在 "System Settings" 下然后 "Application Manager"
http://i.stack.imgur.com/b3oys.jpg
然后
- Force uninstall by running
& adb shell pm uninstall com.brian.testproject
- Check "/data/data/com.brian.testproject/" and delete it
- Remove any entries of your package on /data/system/packages.xml
- Remove any entries of your package on /data/system/packages.list
- Also you could install SDMaiD and clean your device, especially with "CorpseFinder" and "AppCleaner"
2.尝试手动安装app,调试结果:
在你的情况下,你在 android studio 上遇到了 pm 问题...手动安装它以通过命令行获得更详细的消息
$ adb push D:\Android\..\TestProject-debug.apk /sdcard/myapp.apk
$ adb shell pm install /sdcard/myapp.apk
3. 检查 Android Studio 和您的应用程序来源
更改目标 api 级别:
- Right click on your app dir + Open Module Settings + app + check sdk version + change target and minimum under "Flavor"
- Sync gradle button
- Rebuild project
- https://www.youtube.com/watch?v=v4b7C6Q-9dI
- Update your android studio if you don't have the last release
- If your app use libraries, you have to recompile them.
4. 检查系统设置:
Check BOOTCLASSPATH of your init.rc. BOOTCLASSPATH must include /system/framework/ext.jar and /system/framework/framework.jar and so on.
Check DEXPREOPT_BOOT_JARS of build/core/dex_preopt.mk. DEXPREOPT_BOOT_JARS must include ext and framework and so on.
The order of all items on BOOTCLASSPATH must be equal to the order of all items on DEXPREOPT_BOOT_JARS.
5. 直接在设备上尝试 pm 命令:
如果 pm 命令不起作用,直接在 phone 上用终端尝试该命令,看看它是否是 pc 和 phone
之间的连接问题
pm install /sdcard/myapp.apk
6. 重装一遍你的rom(重装就行)不用抹掉
Android工作室
步骤 1:转到文件--> 失效并重新启动。
步骤 2:清理并重建项目。
步骤 3:转到项目文件夹 运行
gradle clean
步骤 4:重新启动 phone/Emulator。
完成!!!
对于遇到同样问题的任何人,不幸的是,我能找到的唯一解决方案是将我的 ROM 版本降级(到 OA8)。一旦我这样做了,adb 就完美地工作了。如果有人找到更好的解决方案,我绝对想知道。
Android Studio 在 Galaxy S5 上失败的原因是因为 adbd(phone 上的 ADB 服务不是你的 PC),在这个 phone 的根版本上没有 运行 作为 root,这是一种安全措施。您可以通过手动尝试执行 Android Studio apk 并在设备上执行命令并发现它们无法执行来验证这一点,但使用“su ...”重试它们并查看应用程序安装和在设备上启动。可以通过三个选项解决此问题并解锁 Android Studio:
选项:
- 刷新包含修改的 ROM - 不需要,因为根据我的理解,您希望保留库存图像;也是一个很好的安全措施,不要一直以 root 身份使用 adbd 运行ning。较旧的 rom 也属于此类,但是您缺少 Stock Rom 更新和安全补丁。
- 创建一个自定义 boot.img 并将其闪存到您的 phone - 这基本上是一个自定义内核,出于与上述选项 1 类似的原因而不需要。
- 在进行应用程序开发时以 root 权限在您的设备上重新启动 adbd - 首选且可通过多种方法轻松实现,包括:
首选方案:
一个。通过终止 phone 上的服务并使用终端应用程序或使用“su”重新启动它,以 root 权限(不安全模式)重新启动 adbd。完成应用程序开发后,重新启动 phone,adbd 将返回安全模式,恢复安全措施。
b。使用 Chainfire 的 ADB 不安全应用程序,该应用程序在 XDA(download/link 以下)上免费,或在 Google Play 上付费以支持他的工作。您可以在应用程序中切换模式。在应用程序中,您还可以选择在重新启动时自动重新启用不安全模式。
参考文献:
http://forum.xda-developers.com/showthread.php?t=1687590(包括免费下载 link)
https://play.google.com/store/apps/details?id=eu.chainfire.adbd(支持 Chainfire 的工作)
我正在尝试 运行 来自 android 工作室的我的 GS5 应用程序,我得到了这个:
Waiting for device.
Target device: samsung-sm_g900v-f3af9744
Uploading file
local path: D:\Android\Projects\TestProject\build\outputs\apk\TestProject-debug.apk
remote path: /data/local/tmp/com.brian.testproject
Installing com.datascan.mobilescripts
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.brian.testproject"
Aborted
好像是在拷贝文件到设备上,在/data/local/tmp目录下可以看到。它只是在 "pm install" 阶段失败了。
在phone我打开了USB调试并授权了电脑。这是我在 运行 ADB 设备时得到的结果:
D:\Android\sdk\platform-tools>adb devices
List of devices attached
f3af9744 device
所以这似乎是正确的。我不太确定问题出在哪里。 Google 搜索问题没有给我任何相关结果。
有谁知道如何获得 "Aborted" 以外的更多信息?感谢任何帮助,谢谢!
编辑:
正如@AlexP 所建议的。我运行"adb logcat -d -s PackageManager:*",结果是这样的:
D:\Android\sdk\platform-tools>adb logcat -d -s PackageManager:*
--------- beginning of main
--------- beginning of system
没什么帮助,但我确实决定观看 logcat,因为 pm 安装正在进行 运行,我发现了这个错误条目:
Tag=appproc | Text= ERROR: Could not find class 'com.android.commands.pm.Pm'
Tag=art | Text= art.runtime/thread.cc:1105] No pending exeption expected: java.lang.ClassNotFoundException: Didn't find class "com.android.commands.pm.Pm" on path: DexPathList[[zip file "/system/framework/pm.jar"],nativeLibraryDirectories=]/vendor/lib, /system/lib]]
接着是一大堆艺术错误条目。
看来我的 phone 好像遗漏了一些东西,也许吧?
可能的解决方案:
1. 检查您的应用程序是否留下任何数据:
首先如果应用已经安装,然后清除缓存数据并卸载它 在 "System Settings" 下然后 "Application Manager" http://i.stack.imgur.com/b3oys.jpg
然后
- Force uninstall by running
& adb shell pm uninstall com.brian.testproject
- Check "/data/data/com.brian.testproject/" and delete it
- Remove any entries of your package on /data/system/packages.xml
- Remove any entries of your package on /data/system/packages.list
- Also you could install SDMaiD and clean your device, especially with "CorpseFinder" and "AppCleaner"
2.尝试手动安装app,调试结果:
在你的情况下,你在 android studio 上遇到了 pm 问题...手动安装它以通过命令行获得更详细的消息
$ adb push D:\Android\..\TestProject-debug.apk /sdcard/myapp.apk
$ adb shell pm install /sdcard/myapp.apk
3. 检查 Android Studio 和您的应用程序来源
更改目标 api 级别:
- Right click on your app dir + Open Module Settings + app + check sdk version + change target and minimum under "Flavor"
- Sync gradle button
- Rebuild project
- https://www.youtube.com/watch?v=v4b7C6Q-9dI
- Update your android studio if you don't have the last release
- If your app use libraries, you have to recompile them.
4. 检查系统设置:
Check BOOTCLASSPATH of your init.rc. BOOTCLASSPATH must include /system/framework/ext.jar and /system/framework/framework.jar and so on.
Check DEXPREOPT_BOOT_JARS of build/core/dex_preopt.mk. DEXPREOPT_BOOT_JARS must include ext and framework and so on.
The order of all items on BOOTCLASSPATH must be equal to the order of all items on DEXPREOPT_BOOT_JARS.
5. 直接在设备上尝试 pm 命令:
如果 pm 命令不起作用,直接在 phone 上用终端尝试该命令,看看它是否是 pc 和 phone
之间的连接问题pm install /sdcard/myapp.apk
6. 重装一遍你的rom(重装就行)不用抹掉
Android工作室
步骤 1:转到文件--> 失效并重新启动。
步骤 2:清理并重建项目。
步骤 3:转到项目文件夹 运行
gradle clean
步骤 4:重新启动 phone/Emulator。
完成!!!
对于遇到同样问题的任何人,不幸的是,我能找到的唯一解决方案是将我的 ROM 版本降级(到 OA8)。一旦我这样做了,adb 就完美地工作了。如果有人找到更好的解决方案,我绝对想知道。
Android Studio 在 Galaxy S5 上失败的原因是因为 adbd(phone 上的 ADB 服务不是你的 PC),在这个 phone 的根版本上没有 运行 作为 root,这是一种安全措施。您可以通过手动尝试执行 Android Studio apk 并在设备上执行命令并发现它们无法执行来验证这一点,但使用“su ...”重试它们并查看应用程序安装和在设备上启动。可以通过三个选项解决此问题并解锁 Android Studio:
选项:
- 刷新包含修改的 ROM - 不需要,因为根据我的理解,您希望保留库存图像;也是一个很好的安全措施,不要一直以 root 身份使用 adbd 运行ning。较旧的 rom 也属于此类,但是您缺少 Stock Rom 更新和安全补丁。
- 创建一个自定义 boot.img 并将其闪存到您的 phone - 这基本上是一个自定义内核,出于与上述选项 1 类似的原因而不需要。
- 在进行应用程序开发时以 root 权限在您的设备上重新启动 adbd - 首选且可通过多种方法轻松实现,包括:
首选方案:
一个。通过终止 phone 上的服务并使用终端应用程序或使用“su”重新启动它,以 root 权限(不安全模式)重新启动 adbd。完成应用程序开发后,重新启动 phone,adbd 将返回安全模式,恢复安全措施。
b。使用 Chainfire 的 ADB 不安全应用程序,该应用程序在 XDA(download/link 以下)上免费,或在 Google Play 上付费以支持他的工作。您可以在应用程序中切换模式。在应用程序中,您还可以选择在重新启动时自动重新启用不安全模式。
参考文献:
http://forum.xda-developers.com/showthread.php?t=1687590(包括免费下载 link)
https://play.google.com/store/apps/details?id=eu.chainfire.adbd(支持 Chainfire 的工作)