在Android 10中出现“无活动管理员”SecurityException - 如何解决?

45

在测试期间,我在Google Play控制台的预启动报告中遇到了一个错误。错误信息如下:

java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver}

这个错误特别出现在Android 10(SDK 29)中。完整的错误摘要如下:


Exception Process: com.google.android.apps.mtaas.deviceadmin, PID: 4380
java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver}
  at android.os.Parcel.createException (Parcel.java:2088)
  at android.os.Parcel.readException (Parcel.java:2056)
  at android.os.Parcel.readException (Parcel.java:2004)
  at android.app.admin.IDevicePolicyManager$Stub$Proxy.setNetworkLoggingEnabled (IDevicePolicyManager.java:15305)
  at android.app.admin.DevicePolicyManager.setNetworkLoggingEnabled (DevicePolicyManager.java:11627)
  at com.google.android.apps.mtaas.deviceadmin.EnableNetworkLogging.onStart (EnableNetworkLogging.kt:27)
  at android.app.Instrumentation$InstrumentationThread.run (Instrumentation.java:2209)
Caused by android.os.RemoteException: Remote stack trace:
  at com.android.server.devicepolicy.DevicePolicyManagerService.getActiveAdminWithPolicyForUidLocked (DevicePolicyManagerService.java:3259)
  at com.android.server.devicepolicy.DevicePolicyManagerService.getActiveAdminOrCheckPermissionForCallerLocked (DevicePolicyManagerService.java:3155)
  at com.android.server.devicepolicy.DevicePolicyManagerService.getActiveAdminForCallerLocked (DevicePolicyManagerService.java:3136)
  at com.android.server.devicepolicy.DevicePolicyManagerService.enforceCanManageScopeOrCheckPermission (DevicePolicyManagerService.java:7218)
  at com.android.server.devicepolicy.DevicePolicyManagerService.enforceCanManageScope (DevicePolicyManagerService.java:7204)

我需要帮助解决这个特定的错误。任何帮助或指导将不胜感激。


请问有谁能帮我解决这个错误吗?这真的很令人沮丧。 - Rohan Hazarika
请问有人可以帮我解决这个错误吗?这真的让人很沮丧。 - Rohan Hazarika
1
我认为这可能是一个误报。可能是预发布报告服务出了问题,而不是应用程序本身崩溃了。你可以检查用户的实际崩溃日志,但我怀疑你能在那里找到崩溃的原因。 - noblemaster
1
今天我刚刚在发布新应用时遇到了这个问题。不幸的是,它阻止了我发布应用,并且一直被拒绝。我在多台设备和模拟器上进行了测试,但似乎只在他们的测试设备上出现了这个问题。 - Clinton
@tricknology 我解决了,但并非出于我的行动。我无法重现这个错误,于是决定将其上传到一个公开测试中。第二天早上醒来,被标记为有问题的发布版本突然被批准了。 - undefined
显示剩余4条评论
6个回答

38

刚刚一段时间前也收到了同样的报告。看起来这与谷歌用于生成报告的设备/模拟器有关的问题。

至少在我的情况下,它与被测试的应用程序无关,因为它没有任何依赖于谷歌库。

编辑:您可以在Google问题跟踪器中找到类似的报告:https://issuetracker.google.com/issues/160907013#comment144


你能帮我解决这个问题吗?它正在阻止我继续进行生产发布。 - Rohan Hazarika
@RohanHazarika 你应该能够忽略这个问题,然后继续将你的发布推广到生产环境。只需转到创建发布的部分,然后选择“推广到生产环境”。 - BamsBamx
刚刚收到这个错误信息:“java.lang.SecurityException: No active admin”等等。我正在进行内部测试。希望我能够继续下去 :( - Mick
刚刚遇到了这个错误,"java.lang.SecurityException: No active admin "等等。我正在进行内部测试。希望能够继续下去 :( - Mick
刚刚收到这个错误信息,“java.lang.SecurityException: No active admin”等等。我正在进行内部测试。希望我能够继续下去 :( - undefined
你好,我现在在上传到测试轨道时遇到了同样的错误。奇怪的是,1.5个月前我提供了一个新版本,那时候没有预启动错误(最新版本只有一些小的bug修复,没有添加或删除任何重要的库),有人能提供解决这个问题的方法吗? - Rohit

25

我刚刚联系了Google Play支持团队,他们回复如下:

支持团队:“请注意,预发布报告不会阻止任何轨道的发布。”

支持团队:“它只有在您的应用程序到达测试人员之前主动识别问题的作用。”

支持团队:“这意味着它仅通知您有关测试轨道新版本中可能存在的任何问题,但不会阻止您继续发布这些版本。”

支持团队:“此外,预发布报告仅测试您上传到公开、关闭和内部测试轨道的版本;它不会测试上传到生产轨道的版本。”

支持团队:“如果您确信您的版本没有任何错误,则可以忽略预发布报告中的错误并发布您的版本。”

支持团队:“有关预发布报告的更多信息,请参阅我们的帮助中心。 https://support.google.com/googleplay/android-developer/answer/9842757

我:“那么报告对最终审核发布到生产环境没有影响,是吗?”

支持团队:“是的,没错。”


4
绝对是典型的谷歌风格。你会遇到一个巨大的红色错误,没有任何明显的帮助或解释,结果发现很可能是他们这边的一个bug,对任何事情都没有影响。唉。我认识很多谷歌员工,他们都非常聪明,但在这种事情上真的不行... - AntonOfTheWoods

6

解决方案:不做任何操作

说明:预发布报告不会阻止发布到任何追踪项。


3

我在尝试将我的Flutter应用程序发布到Play商店时遇到了相同的错误。我删除了一些包。有趣的是,这个错误是与三星设备有关的。如果有用的话,我会把堆栈跟踪留给你。

它仍然显示为“审核中”,所以我不确定我是否能够忽略这个错误并将其推广到生产环境。

堆栈跟踪

java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver}


Exception Process: com.google.android.apps.mtaas.deviceadmin, PID: 6114
java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver}
  at android.os.Parcel.createException (Parcel.java:2088)
  at android.os.Parcel.readException (Parcel.java:2056)
  at android.os.Parcel.readException (Parcel.java:2004)
  at android.app.admin.IDevicePolicyManager$Stub$Proxy.setNetworkLoggingEnabled (IDevicePolicyManager.java:15305)
  at android.app.admin.DevicePolicyManager.setNetworkLoggingEnabled (DevicePolicyManager.java:11627)
  at com.google.android.apps.mtaas.deviceadmin.EnableNetworkLogging.onStart (EnableNetworkLogging.kt:27)
  at android.app.Instrumentation$InstrumentationThread.run (Instrumentation.java:2209)

触发错误的设备


是的,三星的问题。原生Java应用程序,三星SM-G981U1。 - Psijic
是的,三星的问题。原生Java应用程序,三星SM-G981U1。 - undefined

0

你能忽略这个错误并上传应用吗?我不能忽略这个错误,它强制我在上传之前修复错误。


0

这听起来很奇怪,但导致这个问题的真正原因是如果你的应用程序中有网络服务(如API调用),而你没有正确处理错误,比如没有将代码添加在合适的位置。

 try{ //
 your webservice request
 }catch(e){
// error handling
} 

如果你使用了旧的库或者没有正确处理错误的库,你将会面临相同的问题。 在正确处理所有错误后,在pubspec.yaml中更改应用程序版本名称和代码如下:version: 1.0.1+2然后运行命令flutter cleanflutter build appbundle --release来创建一个新的应用程序捆绑包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接