11

While developing an app I came into following error. I tried downgrading the java version from 11 to 8, but that wasn't helpful.

FAILURE: Build failed with an exception.

* What went wrong:
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy().

* 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 15s
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

Command failed: gradlew.bat installDebug

Error: Command failed: gradlew.bat installDebug
    at checkExecSyncError (child_process.js:616:11)
    at Object.execFileSync (child_process.js:634:13)
    at runOnAllDevices (C:\Users\samie\Documents\React Native\auth\node_modules\react-native\local-cli\runAndroid\runAndroid.js:299:19)
    at buildAndRun (C:\Users\samie\Documents\React Native\auth\node_modules\react-native\local-cli\runAndroid\runAndroid.js:135:12)
    at isPackagerRunning.then.result (C:\Users\samie\Documents\React Native\auth\node_modules\react-native\local-cli\runAndroid\runAndroid.js:65:12)
    at process._tickCallback (internal/process/next_tick.js:68:7)
jo_va
  • 13,504
  • 3
  • 23
  • 47
Samuel Egwurube
  • 111
  • 1
  • 1
  • 5

11 Answers11

9

How I solved this problem:

First, make sure that I have %java_home% variable set and also %path% has the java sdk included. How to setup Java environment variables

Second, Go to your android folder and run this command:

C:\Projects\myproject\android>gradlew.bat app:installDebug.

Unzipping C:\Users\codeb.gradle\wrapper\dists\gradle-4.10.2-all\9fahxiiecdb76a5g3aw9oi8rv\gradle-4.10.2-all.zip to C:\Users\codeb.gradle\wrapper\dists\gradle-4.10.2-all\9fahxiiecdb76a5g3aw9oi8rv Exception in thread "main" java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:225) at java.util.zip.ZipFile.(ZipFile.java:155) at java.util.zip.ZipFile.(ZipFile.java:169) at org.gradle.wrapper.Install.unzip(Install.java:215) at org.gradle.wrapper.Install.access$600(Install.java:27) at org.gradle.wrapper.Install$1.call(Install.java:75) at org.gradle.wrapper.Install$1.call(Install.java:48) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

As you can see that my gradle download is corrupt. All you have to do is delete this folder and rerun the command.

C:\Projects\myproject\android>gradlew.bat app:installDebug

Downloading https://services.gradle.org/distributions/gradle-4.10.2-all.zip ............................................................................................................... Unzipping C:\Users\codeb.gradle\wrapper\dists\gradle-4.10.2-all\9fahxiiecdb76a5g3aw9oi8rv\gradle-4.10.2-all.zip to C:\Users\codeb.gradle\wrapper\dists\gradle-4.10.2-all\9fahxiiecdb76a5g3aw9oi8rv

Welcome to Gradle 4.10.2!

Here are the highlights of this release: - Incremental Java compilation by default - Periodic Gradle caches cleanup - Gradle Kotlin DSL 1.0-RC6 - Nested included builds - SNAPSHOT plugin versions in the plugins {} block

For more details see https://docs.gradle.org/4.10.2/release-notes.html

Now, you can go back to your react native project and run

react-native run-android

info JS server already running. info Building and installing the app on the device (cd android && gradlew.bat app:installDebug)...

Task :app:installDebug 01:03:18 V/ddms: execute: running am get-config 01:03:18 V/ddms: execute 'am get-config' on 'emulator-5554' : EOF hit. Read: -1 01:03:18 V/ddms: execute: returning Installing APK 'app-debug.apk' on 'Pixel_2_API_28(AVD) - 9' for app:debug 01:03:18 D/app-debug.apk: Uploading app-debug.apk onto device 'emulator-5554' 01:03:18 D/Device: Uploading file onto device 'emulator-5554' 01:03:18 D/ddms: Reading file permision of C:\Projects\xx\android\app\build\outputs\apk\debug\app-debug.apk as: rwx------ 01:03:18 V/ddms: execute: running pm install -r -t "/data/local/tmp/app-debug.apk" 01:03:19 V/ddms: execute 'pm install -r -t "/data/local/tmp/app-debug.apk"' on 'emulator-5554' : EOF hit. Read: -1 01:03:19 V/ddms: execute: returning 01:03:19 V/ddms: execute: running rm "/data/local/tmp/app-debug.apk" 01:03:19 V/ddms: execute 'rm "/data/local/tmp/app-debug.apk"' on 'emulator-5554' : EOF hit. Read: -1 01:03:19 V/ddms: execute: returning Installed on 1 device.

BUILD SUCCESSFUL in 9s 27 actionable tasks: 1 executed, 26 up-to-date info Running C:\Users\codeb\AppData\Local\Android\Sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081 info Starting the app on emulator-5554 (C:\Users\codeb\AppData\Local\Android\Sdk/platform-tools/adb -s emulator-5554 shell am start -n com.myproject/com.myproject.MainActivity)... Starting: Intent { cmp=com.myproject/.MainActivity }

enter image description here

Omar Sherif
  • 649
  • 9
  • 26
codebased
  • 6,945
  • 9
  • 50
  • 84
3

Try running this command inside your project file

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res 

after that

cd (path to project/android folder) && gradlew clean && cd .. && react-native run-android

always gradlew clean before run react-native-run-android the above command basically cleans up the gradle and previous builds.

for ENOENT Error Check if $ yarn start works. The metro bundler wasn't able to run on port 8081 for me and I needed to run $ killall node

EDIT:

Also update the gradle-wrapper.properties add

distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip

remove following code from build.gradle:

task wrapper(type: Wrapper) {
   gradleVersion = '5.2.1'
   distributionUrl = distributionUrl.replace("bin", "all")
}

after that

cd (path to project/android folder) && gradlew clean && cd .. && react-native run-android

always gradlew clean before run react-native-run-android the above command basically cleans up the gradle and previous builds.

You're good to go!

Akshay Mulgavkar
  • 1,727
  • 9
  • 22
  • after the first step, i got this error: Loading dependency graph, done. Loading dependency graph...bundle: Writing bundle output to: android/app/src/main/assets/index.android.bundle ENOENT: no such file or directory, open 'C:\Users\samie\Documents\React Native\auth\android\app\src\main\assets\index.android.bundle' Error: ENOENT: no such file or directory, open 'C:\Users\samie\Documents\React Native\auth\android\app\src\main\assets\index.android.bundle' – Samuel Egwurube Feb 20 '19 at 17:27
  • for ENOENT Error Check if $ yarn start works. The metro bundler wasn't able to run on port 8081 for me and I needed to run $ killall node – Akshay Mulgavkar Feb 21 '19 at 04:24
2

Just run sudo react-native run-android and it will build and install ./gradlew app:installDebug inside android directory for you.

Abdi
  • 264
  • 3
  • 5
1

I had this issue too and I was able to fix it by creating a new project in react-native 0.57.3 using the command: react-native init --version="0.57.3" MyNewApp

1

You have to update the gradle-wrapper.properties file to use the newest version of gradle:

 distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip

And remove this block from build.gradle file:

task wrapper(type: Wrapper) {
   gradleVersion = '5.2.1'
   distributionUrl = distributionUrl.replace("bin", "all")
}

Then run a gradlew clean on the android folder and everything should work.

FoX
  • 11
  • 1
1

I had this issue too and I was able to fix it by run ./gradlew app:installDebug in android folder .

javad zobeidi
  • 21
  • 1
  • 7
1

In my case, I uninstalled my java jdk17 and installed java jdk11. It worked for me few seconds ago. Really happy :)))

  • This does not provide an answer to the question. Once you have sufficient [reputation](https://stackoverflow.com/help/whats-reputation) you will be able to [comment on any post](https://stackoverflow.com/help/privileges/comment); instead, [provide answers that don't require clarification from the asker](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [From Review](/review/late-answers/30254901) – M.Mavini Nov 04 '21 at 19:20
0

I had this issue myself, it eventually went away after I uninstalled and re-installed android studio and gradle, but a few other things you could try first

1: Setting GRADLE_USER_HOME in environment variables (if on windows)

2: Downgrade to react-native 0.57.0

3: Make sure you have the correct permissions to run the command and access files

4: Make sure your gradle files are synced correctly, and that location of gradle and the android skd are correct within project structure offline mode

5: Check gradle for updates

(Assuming you are using android studio)

Good luck

Natalie
  • 103
  • 1
  • 10
0

The problem is on file:

nameyourapp/android/local.properties

you have to substitute with the correct path: /Users/nameUser/AppData/Local/Android/sdk

Cinzia Nicoletti
  • 169
  • 1
  • 14
0

I have the same error I just uninstall the JDK old version and install the latest version from https://www.oracle.com/java/technologies/javase-downloads.html and now it's working.

-2
  • Open your settings.grandler file in the android folder

  • Change the \ to /

  • Save the file

  • Run the command react-native run-android