我试图从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安装”阶段失败了。
在手机上,我打开了USB调试并授权了电脑。这是我运行ADB设备时得到的结果:
D:\Android\sdk\platform-tools>adb devices
List of devices attached
f3af9744 device
所以这似乎是正确的。我不确定问题是什么。谷歌搜索这个问题并没有给我任何相关的结果。
有谁知道如何获得“Aborted”以外的更多信息?感谢任何帮助,谢谢!
修改
正如@AlexP所建议的那样。我运行了“adb logcat -d -s PackageManager:*”,这就是结果:
D:\Android\sdk\platform-tools>adb logcat -d -s PackageManager:*
--------- beginning of main
--------- beginning of system
没什么帮助,但是我确实决定在运行pm安装时观察logcat,我发现了这个错误条目:
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]]
接下来是一大堆艺术错误条目。
所以看起来我的手机似乎缺少一些东西,也许?
答案 0 :(得分:8)
Android Studio在Galaxy S5上失败的原因是因为adbd(手机上的ADB服务而不是你的PC),在这款手机的root版本上没有以root身份运行,这是一项安全措施。您可以通过手动尝试执行Android Studio apk并在设备上执行命令并发现它们无法执行来验证这一点,但是使用“su ...”重试它们并看到应用程序在设备上安装并启动。有三种方法可以解决此问题并取消阻止Android Studio:
选项:强>
首选解决方案:
一个。通过终止手机上的服务并使用终端应用程序左键重启adbd以使用root权限(不安全模式),使用“su”重新启动它。完成应用开发后,重新启动手机,adbd将恢复安全模式,恢复安全措施。
湾使用Chainfire的ADB不安全应用程序,该应用程序在XDA上免费下载(下面的链接/链接)或在Google Play上付费以支持他的工作。您可以在应用中切换模式。在应用程序中,您还可以选择在重新启动时自动重新启用不安全模式。
<强>参考文献:强>
http://forum.xda-developers.com/showthread.php?t=1687590(包括免费下载链接)
https://play.google.com/store/apps/details?id=eu.chainfire.adbd(支持Chainfire的工作)
答案 1 :(得分:5)
1。 检查您的应用是否留下了任何数据:
首先,如果已安装该应用,请清除缓存数据并将其卸载 在“系统设置”下,然后“应用程序管理器” http://i.stack.imgur.com/b3oys.jpg
然后
- 运行
强行卸载& adb shell pm uninstall com.brian.testproject
- 检查“/data/data/com.brian.testproject/”并将其删除
- 删除/data/system/packages.xml
上包的所有条目- 删除/data/system/packages.list
中包的所有条目- 您也可以安装SDMaiD并清理您的设备,尤其是使用“CorpseFinder”和“AppCleaner”
2。 尝试手动安装应用并调试结果:
在你的情况下,你有一个关于安卓工作室的问题...手动安装它以通过命令行获得更详细的消息
$ adb push D:\Android\..\TestProject-debug.apk /sdcard/myapp.apk
$ adb shell pm install /sdcard/myapp.apk
3。 检查Android Studio和您的应用来源
更改目标api级别:
- 右键点击您的应用目录+打开模块设置+应用+检查sdk版本+更改目标和最小化“风味”
- 同步草图按钮
- 重建项目
- https://www.youtube.com/watch?v=v4b7C6Q-9dI
- 如果您没有最新版本,请更新您的Android工作室
- 如果您的应用使用库,则必须重新编译它们。
4. 检查系统设置:
检查init.rc的BOOTCLASSPATH。 BOOTCLASSPATH必须包含/system/framework/ext.jar和/system/framework/framework.jar等。
检查build / core / dex_preopt.mk的DEXPREOPT_BOOT_JARS。 DEXPREOPT_BOOT_JARS必须包含ext和框架等。
BOOTCLASSPATH上所有项目的顺序必须等于DEXPREOPT_BOOT_JARS上所有项目的顺序。
5. 直接在设备上尝试pm命令:
如果pm命令不起作用尝试直接在手机上使用终端的命令,看看它是否是PC和手机之间的连接问题
pm install /sdcard/myapp.apk
6. 再次重新安装你的rom(只需重新安装),无需删除。
答案 2 :(得分:1)
对于任何有同样问题的人,不幸的是,我能找到的唯一解决方案是降级我的ROM版本(到OA8)。一旦我这样做,adb就完美无缺。如果有人找到更好的解决方案,我肯定想知道。
答案 3 :(得分:-1)
Android Studio
第1步:转到文件 - &gt;无效并重新启动。
第2步:清理并重建项目。
第3步:转到项目文件夹运行
gradle clean
第4步:重启手机/模拟器。
完成!!!