Android studio 在构建设备所有者应用程序时失败,并显示“无法终止应用程序的先前实例”

问题描述 投票:0回答:1

我正在构建一个应用程序,它将被设置为平板电脑的设备所有者。该平板电脑是一种定制的信息亭类型设备。要将应用程序设置为设备所有者,我已执行以下操作:

  1. 添加权限:
<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
  1. 添加配置:
<receiver
    android:name=".utils.MyDeviceAdminReceiver"
    android:exported="true"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>

    <meta-data
        android:name="android.app.device_admin"
        android:resource="@xml/policies" />
</receiver>
  1. 创建策略文件:
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <force-lock />
        <reset-password />
    </uses-policies>
</device-admin>
  1. 最后,添加一个空的设备管理接收器:
package com.homeapp.utils

import android.app.admin.DeviceAdminReceiver
import android.content.Context
import android.content.Intent
import android.widget.Toast

class MyDeviceAdminReceiver : DeviceAdminReceiver() {}

通过 android studio 构建应用程序后,我使用以下命令将应用程序设置为设备所有者:

adb shell dpm set-device-owner com.homeapp/com.homeapp.utils.MyDeviceAdminReceiver

也获得了成功:

Success: Device owner set to package com.homeapp/com.homeapp.utils.MyDeviceAdminReceiver
Active admin set to component com.homeapp/com.homeapp.utils.MyDeviceAdminReceiver

设置家庭应用程序后,现在当我尝试从 android studio 构建应用程序时,它失败并出现此错误:

Couldn't terminate previous instance of app

我找到了这个帖子,但上面提到的解决方案不起作用: https://issuetracker.google.com/issues/181004316

如何解决这个问题?

enter image description here

android android-studio device-owner
1个回答
0
投票

既然我从你的问题中了解到,你可以尝试- 使用删除设备所有者状态

adb shell dpm remove-active-admin com.homeapp/.utils.MyDeviceAdminReceiver
更新应用程序后重新分配设备所有者状态
adb shell dpm set-device-owner com.homeapp/.utils.MyDeviceAdminReceiver
错误原因:- 当应用程序获得设备所有者状态时,它会获得更高的特权并阻止 Android Studio 卸载或更新应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.