如何在应用程序代码中使用adb命令卸载android应用程序?

如何在应用程序代码中使用adb命令卸载android应用程序?,android,android-studio,adb,kiosk,Android,Android Studio,Adb,Kiosk,我希望在不弹出“是否要卸载此应用程序?”对话框的情况下卸载应用程序 我试过使用 try { Runtime.getRuntime().exec("pm uninstall --user 0 packageName") }catch (e : Exception){ e.printStackTrace() } 获取以下错误 Exception occurred while dumping: java.la

我希望在不弹出“是否要卸载此应用程序?”对话框的情况下卸载应用程序

我试过使用

try {
        Runtime.getRuntime().exec("pm uninstall --user 0 packageName")
    }catch (e : Exception){
        e.printStackTrace()        
    }
获取以下错误

Exception occurred while dumping:
    java.lang.NullPointerException
        at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:94)
        at com.android.server.AppOpsService.checkPackage(AppOpsService.java:974)
        at android.app.AppOpsManager.checkPackage(AppOpsManager.java:1656)
        at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:874)
        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:18695)
        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:2408)
        at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3083)
        at android.os.Binder.execTransact(Binder.java:565)
注意:在AndroidManifest文件中添加了跨用户交互的完整权限,并且该应用程序作为系统应用程序进行了签名

这目前不适用于第三方应用程序。注意 即使使用反射或其他技巧访问installPackage(),也会 没有帮助,因为只有系统应用程序才能使用它。(这是 因为它是低级的安装机制,在权限之后 已经得到用户的批准,所以定期使用是不安全的 要访问的应用程序。)

此外,installPackage()函数参数也经常更改 在平台发布之间,所以您尝试访问它时所做的任何事情都将 在平台的各种其他版本上失败

但是,对于使用ADB命令行卸载应用程序,您可以使用

adb卸载

您可以参考下面的链接到另一个类似的线程


adb卸载
这不起作用。我希望您是通过命令行完成的。此外,请确保传递的包名正确。