SecurityException during app:installDebug Task while attempting to run react-native app on MI MAX 2 android device
Running npx react-native run-android
is working on the android emulator, and also on a Samsung device I have. But when connecting a MI MAX 2 device, I get the following:
> 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
Note: I tried adding the following to my AndroidManifest.xml
but it didn't appear to make a difference:
<uses-permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS"/>
Any ideas?
Ensure that all three
- Developer Options -> USB debugging
- Developer Options -> USB debugging (Security settings)
- Developer Options -> Install via USB
are turned on
I could fix it on a MI POCO F2 Pro enabling Developer Options
-> USB debugging (Security settings)
option.