Flutter应用Google Play预启动测试报错求助:DeviceAdminReceiver异常
Flutter应用Google Play预启动测试失败求助
我用Flutter开发的应用在iPhone及本地模拟器上运行正常,但上传App Bundle至Google Play商店进行预启动测试时失败。由于现有问题在稳定版中未修复,我使用的是Flutter Beta版本,无法降级。
版本信息
- Dart版本:2.18.0 (build 2.18.0-165.1.beta)
- Flutter版本:3.1.0-9.0.pre
app/build.gradle配置
//app/build.gradle defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 21 targetSdkVersion 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName multiDexEnabled true }
预启动测试报错详情
报错详情1
FATAL EXCEPTION: main Process: com.google.android.apps.mtaas.deviceadmin, PID: 24263 java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.ToggleUserRestriction}: java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver} at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7033) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6989) at android.app.ActivityThread.access$1600(ActivityThread.java:272) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2055) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:8016) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076) Caused by: 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.setUserRestriction(IDevicePolicyManager.java:12057) at android.app.admin.DevicePolicyManager.addUserRestriction(DevicePolicyManager.java:9463) at com.google.android.apps.mtaas.deviceadmin.ToggleUserRestriction.start(ToggleUserRestriction.java:49) at com.google.android.apps.mtaas.deviceadmin.ToggleUserRestriction.onCreate(ToggleUserRestriction.java:22) at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7028) ... 9 more 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.setUserRestriction(DevicePolicyManagerService.java:11176) at android.app.admin.IDevicePolicyManager$Stub.onTransact$setUserRestriction$(IDevicePolicyManager.java:18210)
设备详情截图
报错详情2
FATAL EXCEPTION: main Process: com.google.android.apps.mtaas.deviceadmin, PID: 24387 java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.SetUpdatePolicy}: java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver} at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7033) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6989) at android.app.ActivityThread.access$1600(ActivityThread.java:272) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2055) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:8016) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076) Caused by: 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.setSystemUpdatePolicy(IDevicePolicyManager.java:13914) at android.app.admin.DevicePolicyManager.setSystemUpdatePolicy(DevicePolicyManager.java:10286) at com.google.android.apps.mtaas.deviceadmin.SetUpdatePolicy.start(SetUpdatePolicy.java:51) at com.google.android.apps.mtaas.deviceadmin.SetUpdatePolicy.onCreate(SetUpdatePolicy.java:34) at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7028) ... 9 more 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.setSystemUpdatePolicy(DevicePolicyManagerService.java:12678) at android.app.admin.IDevicePolicyManager$Stub.onTransact(IDevicePolicyManager.java:5997)
报错2设备信息截图
报错详情3
FATAL EXCEPTION: Instr: com.google.android.apps.mtaas.deviceadmin.HideApps Process: com.google.android.apps.mtaas.deviceadmin, PID: 24912 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.isApplicationHidden(IDevicePolicyManager.java:12520) at android.app.admin.DevicePolicyManager.isApplicationHidden(DevicePolicyManager.java:9590) at com.google.android.apps.mtaas.deviceadmin.HideApps.onStart(HideApps.java:63) 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)
报错3设备信息截图
报错详情4
FATAL EXCEPTION: Instr: com.google.android.apps.mtaas.deviceadmin.HideApps Process: com.google.android.apps.mtaas.deviceadmin, PID: 28724 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.isApplicationHidden(IDevicePolicyManager.java:12520) at android.app.admin.DevicePolicyManager.isApplicationHidden(DevicePolicyManager.java:9590) at com.google.android.apps.mtaas.deviceadmin.HideApps.onStart(HideApps.java:63) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2209)
报错4设备信息截图
依赖包列表
cupertino_icons: ^1.0.2 firebase_core: ^1.19.1 firebase_auth: ^3.4.1 firebase_database: ^9.0.18 cloud_firestore: ^3.2.1 firebase_storage: ^10.3.1 cloud_functions: ^3.3.2 firebase_app_check: ^0.0.6+12 font_awesome_flutter: ^10.1.0 google_fonts: ^3.0.1 smooth_page_indicator: ^1.0.0+2 flutter_riverpod: ^1.0.3 http: ^0.13.4 flutter_dotenv: ^5.0.2 modal_bottom_sheet: ^2.0.1 image_picker: ^0.8.5+3 filter_list: ^1.0.2 syncfusion_flutter_core: ^20.1.56 syncfusion_flutter_sliders: ^20.1.56 shimmer: ^2.0.0 flutter_rating_bar: ^4.0.1 blur: ^3.1.0 cached_network_image: ^3.2.1 flutter_slidable: ^1.3.0 youtube_player_flutter: ^8.1.0 loading_indicator: ^3.1.0 pull_to_refresh: ^2.0.0 google_sign_in: ^5.3.2 dropdown_search: ^5.0.1 toggle_switch: ^2.0.1 chips_choice_null_safety: ^2.0.2 flutter_speed_dial: ^6.0.0 auto_size_text: ^3.0.0 bouncing_widget: ^2.0.0 badges: ^2.0.3 flutter_launcher_icons: ^0.9.3 flutter_svg: ^1.1.1+1 flutter_cache_manager: ^3.3.0 string_similarity: ^2.0.0 shared_preferences: ^2.0.15 sign_in_with_apple: ^4.1.0 crypto: ^3.0.2
问题分析与解决建议
所有报错均来自Google Play预启动测试的管理进程com.google.android.apps.mtaas.deviceadmin,提示缺少激活的设备管理员组件,并非你的应用进程抛出的异常,大概率是测试环境配置或兼容性问题。可以尝试以下方案:
- 升级Flutter Beta版本:你当前使用的3.1.0-9.0.pre版本较旧,更新到最新Beta版可能修复了与Google Play预启动测试的兼容性问题。
- 升级targetSdkVersion:将
targetSdkVersion从31升级到33(Android 13),提升系统兼容性。 - 检查混淆配置:若开启了R8混淆,确认是否误删了测试所需的组件,可临时关闭混淆重新构建测试。
- 本地真机测试:用实体Android设备运行应用,排除应用本身存在的潜在权限问题。
- 联系Google Play支持:若以上操作无效,可向Google Play开发者支持反馈,说明异常来自测试进程而非应用代码,请求重新触发预启动测试。
内容的提问来源于stack exchange,提问作者yasin
相关产品推荐
相关产品推荐

