adb 指令uninstall卸载android app 处理方法

正常思路,想当然,两句指令搞定应该没啥毛病。

adb unstall ImageGrabber.apk
adb install ImageGrabber.apk

问题来了,报错Unknown package: ImageGrabber.apk

Exception occurred while dumping:
java.lang.IllegalArgumentException: Unknown package: ImageGrabber.apk
        at com.android.server.pm.Settings.isOrphaned(Settings.java:4134)
        at com.android.server.pm.PackageManagerService.isOrphaned(PackageManagerService.java:18256)
        at com.android.server.pm.PackageManagerService.deletePackage(PackageManagerService.java:15673)
        at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:888)
        at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:792)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:118)
        at android.os.ShellCommand.exec(ShellCommand.java:94)
        at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:18516)
        at android.os.Binder.shellCommand(Binder.java:468)
        at android.os.Binder.onTransact(Binder.java:367)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2387)
        at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3147)
        at android.os.Binder.execTransact(Binder.java:565)

手机端根本不认识这个apk,解决办法:

将 ImageGrabber.apk整个文件解压,其中包含:AndroidManifest.xml,打开之后是乱码,别着急,需要反编译工具AXMLPrinter2.jar 给他翻译一下,将这两个文件放在同一个目录下,如D:\ImageGrabber

先命令行将目录设定为D:\ImageGrabber    然后再执行java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt,前提是PC端装好了Java环境,特别是要注意设置好PC端的环境变量。

《adb 指令uninstall卸载android app 处理方法》

C:\Users\Antony WU>d:

D:\>cd ImageGrabber

D:\ImageGrabber>java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt

执行完成后,用notepad++打开AndroidManifest.txt,其中第6行就是所要的答案了package=”com.qualcomm.vr.callibrationtool”

<?xml version="1.0" encoding="utf-8"?>
<manifest
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:versionCode="1"
	android:versionName="1.0"
	package="com.qualcomm.vr.callibrationtool"
	platformBuildVersionCode="25"
	platformBuildVersionName="7.1.1"
	>
	<uses-sdk
		android:minSdkVersion="15"
		android:targetSdkVersion="22"
		>
	</uses-sdk>
	<uses-permission
		android:name="android.permission.CAMERA"
		>
	</uses-permission>
	<uses-permission
		android:name="android.permission.WRITE_EXTERNAL_STORAGE"
		>
	</uses-permission>
	<meta-data
		android:name="android.support.VERSION"
		android:value="25.3.0"
		>
	</meta-data>
	<application
		android:theme="@7F0800A3"
		android:label="@7F060021"
		android:icon="@7F030000"
		android:debuggable="true"
		android:allowBackup="true"
		android:supportsRtl="true"
		android:roundIcon="@7F030001"
		>
		<activity
			android:name="com.qualcomm.vr.callibrationtool.CameraActivity"
			>
			<intent-filter
				>
				<action
					android:name="android.intent.action.MAIN"
					>
				</action>
				<category
					android:name="android.intent.category.LAUNCHER"
					>
				</category>
			</intent-filter>
		</activity>
	</application>
</manifest>

接下来就好搞了,做一个批处理文件,连接USB线或者设置手机端和PC端的wifi在同一局域网,点击后自动执行安装apk文件了,免去了手动安装的痛苦。

.\platform-tools\adb uninstall com.qualcomm.vr.callibrationtool

.\platform-tools\adb install  ImageGrabber.apk

pause

再高级一点就用c# winform做一个界面,可以把多个adb指令功能集成到一个界面里,实现PC端一键控制手机端adb各类指令。

所涉及到的各工具下载地址如下:

https://download.csdn.net/download/ericwuhk/10672633

ref: https://blog.csdn.net/atggdsai/article/details/42131515

    原文作者:Antony_WU_SZ
    原文地址: https://blog.csdn.net/ericwuhk/article/details/82749238
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞