尝试在 MI MAX 2 android 设备上运行 react-native 应用程序时应用程序期间出现 SecurityException:installDebug 任务

Posted

技术标签:

【中文标题】尝试在 MI MAX 2 android 设备上运行 react-native 应用程序时应用程序期间出现 SecurityException:installDebug 任务【英文标题】:SecurityException during app:installDebug Task while attempting to run react-native app on MI MAX 2 android device 【发布时间】:2021-02-23 11:23:54 【问题描述】:

Running npx react-native run-android 正在安卓模拟器上运行,也在我拥有的三星设备上运行。但是在连接 MI MAX 2 设备时,我得到以下信息:

> Task :app:installDebug
Installing APK 'app-debug.apk' on 'MI MAX 2 - 7.1.1' for app:debug

> Task :app:installDebug FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
847 actionable tasks: 2 executed, 845 up-to-date
Unable to install /Users/[....]/android/app/build/outputs/apk/debug/app-debug.apk
com.android.ddmlib.InstallException: Unknown failure: Error: java.lang.SecurityException: You need the android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS permission to use the PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS flag
        at com.android.ddmlib.internal.DeviceImpl.installRemotePackage(DeviceImpl.java:1224)
        at com.android.ddmlib.internal.DeviceImpl.installPackage(DeviceImpl.java:1050)
        at com.android.ddmlib.internal.DeviceImpl.installPackage(DeviceImpl.java:1026)
        at com.android.ddmlib.internal.DeviceImpl.installPackage(DeviceImpl.java:1015)
        at ... etc, etc, etc

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:installDebug'.
> java.util.concurrent.ExecutionException: com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Unknown failure: Error: java.lang.SecurityException: You need the android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS permission to use the PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS flag

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 30s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=4105
Unable to install /Users/[....]/android/app/build/outputs/apk/debug/app-debug.apk

注意:我尝试将以下内容添加到我的 AndroidManifest.xml,但似乎没有什么不同:

<uses-permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS"/>

有什么想法吗?

【问题讨论】:

你能分享你的 AndroidManifest 文件 > 权限部分吗? 嗨@HendEl-Sahli - 我更新了我的问题,回复:AndroidManifest 权限 【参考方案1】:

我可以在启用 Developer Options -> USB debugging (Security settings) 选项的 MI POCO F2 Pro 上修复它。

【讨论】:

我已经在两个设备上启用了 USB 调试。可惜还是没有爱 @DanielLoiterton 您是否启用了两个选项(USB debuggingUSB debugging (Security settings))?【参考方案2】:

确保所有三个

    开发者选项 -> USB 调试 开发者选项 -> USB 调试(安全设置) 开发者选项 -> 通过 USB 安装

已开启

【讨论】:

我的天啊,为什么连两个USB都在调试 确保“通过 USB 安装”在开发者选项中打开【参考方案3】:

从开发者选项中启用 USB 调试(安全设置)。如果手机没有插入 SIM 卡,它会要求您插入 SIM 卡。

【讨论】:

【参考方案4】:

在我从我的 MI 设备中删除 SIM card 后,我遇到了这个问题。 从那以后我不能再接受 USB 调试(安全设置)了..

【讨论】:

【参考方案5】:

解决方案:我已经尝试过了,我插入了我的 SIM 卡并插入了开发人员选项 -> USB 调试(安全设置)和 USB 调试 - 两者都打开但在我的设备中我仍然面临同样的问题,然后我激活了:通过安装USB - 打开。现在它工作正常,我猜我的 REDMI 设备有这个附加选项,其他手机可能没有。

此网页具有运行 Appium 的所有相关功能: http://appium.io/docs/en/writing-running-appium/caps/index.html 在我的功能部分,我还为实际设备添加了 2 个新功能并导入了一个库:

import io.appium.java_client.android.appmanagement.*;
    DesiredCapabilities cap= new DesiredCapabilities();
    cap.setCapability("autoGrantPermissions", "true");
    cap.setCapability("enforceAppInstall", "true");

【讨论】:

如果您有新问题,请点击 按钮提出问题。如果有助于提供上下文,请包含指向此问题的链接。 - From Review 这是我提供的解决方案,我解决问题的方式 通过 USB 安装在所有 Redmi 设备中都可用,并且是任何应用安装以及正常 USB 调试所必需的。只有当您需要通过 USB 模拟手势、更改设置和授予权限时,您才需要进行安全设置。【参考方案6】:

在我的小米红米 Note 7 上,我不得不打开另一个名为“USB 调试(安全设置)”的选项。

它位于“USB 调试”选项下方不远处。

【讨论】:

@thanks dude 对小米 Redmi 7a 的工作就像一个魅力

以上是关于尝试在 MI MAX 2 android 设备上运行 react-native 应用程序时应用程序期间出现 SecurityException:installDebug 任务的主要内容,如果未能解决你的问题,请参考以下文章

从 MI 设备上的 Play 商店获取“中止异常”报告

onDestroy() onTaskRemoved 两者都不能在 Redmi MI 设备上运行

我应该使用啥样的意图来保存android设备生成的错误报告

云时代,用对工具就能让云上运维工作事半功倍!

云时代,用对工具就能让云上运维工作事半功倍!

设备检测条件css