npx react-native run-android 不起作用 - “java.io.IOException:文件名、目录名或卷标语法不正确”

Yos*_*Bro 2 android gradle react-native

最近刚刚退出博览会,我正在尝试在 android 设备上运行我的应用程序。我按照说明操作(希望是正确的),但是当我尝试运行我的应用程序时,我不断收到此错误:

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.0.1/userguide/command_line_interface.html#sec:command_line_warnings

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> java.io.IOException: The filename, directory name, or volume label syntax is incorrect

* 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 3s

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.bat app:installDebug -PreactNativeDevServerPort=8081

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> java.io.IOException: The filename, directory name, or volume label syntax is incorrect

* 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 3s

    at makeError (C:\Users\User\Documents\jad for eject\jad\jad\node_modules\execa\index.js:174:9)
    at C:\Users\User\Documents\jad for eject\jad\jad\node_modules\execa\index.js:278:16
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async runOnAllDevices (C:\Users\User\Documents\jad for eject\jad\jad\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:94:5)
    at async Command.handleAction (C:\Users\User\Documents\jad for eject\jad\jad\node_modules\@react-native-community\cli\build\index.js:186:9)
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

小智 6

我为这个问题苦苦挣扎了 3 个小时,但没有任何效果。

我设法通过删除local.properties文件中的引用来解决我的问题:

sdk.dir = "C:\\Users\\<USER>\\AppData\\Local\\Android\\Sdk"
Run Code Online (Sandbox Code Playgroud)

sdk.dir = C:\\Users\\<USER>\\AppData\\Local\\Android\\Sdk
Run Code Online (Sandbox Code Playgroud)


小智 6

我能够通过改变来解决这个问题

sdk.dir =   C:\Users\mob\AppData\Local\Android\Sdk
Run Code Online (Sandbox Code Playgroud)

sdk.dir =   C:\\Users\\mob\\AppData\\Local\\Android\\Sdk
Run Code Online (Sandbox Code Playgroud)


Gab*_*Lee 5

我在 Windows 上遇到了同样的问题,我的问题出在 Gradlelocal.properties文件上。它包含以下内容:

org.gradle.java.home=C:\Program Files\Java\jdk-15.0.1
sdk.dir=C:\Users\user\AppData\Local\Android\Sdk
Run Code Online (Sandbox Code Playgroud)

问题可能出在 Windows 反斜杠 ( \) 上。有效的是逃避它:

org.gradle.java.home="C:\\Program Files\\Java\\jdk-15.0.1"
sdk.dir=C:\\Users\\user\\AppData\\Local\\Android\\Sdk
Run Code Online (Sandbox Code Playgroud)


小智 1

我通过以下设置解决了问题:

在我的脚本末尾添加以下命令android > gradlew

yes | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-28"

yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;28.0.3"
Run Code Online (Sandbox Code Playgroud)

并在android > gradle > wrapper > gradle-wrapper.properties变化中

distributionUrl=https://services.gradle.org/distributions/gradle-6.{any}-all.zip

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

并检查节点版本是否node v12或以上,然后更新JDK v{any}JDK v14.

也在android > build.gradle变化中

buildToolsVersion: {any}buildToolsVersion: 28.0.3

在更改 buildToolsVersion 之前检查您是否已安装v28.0.3。如果没有那么没问题上面两个命令会自动安装它。

最后一件事是检查您是否拥有该local.properties文件。如果它存在于android文件夹下,请检查您的 sdk 路径是否正确。如果不存在,则在android文件夹下创建一个名为的新文件local.properties,并在该文件下写入以下命令:

sdk.dir=Your SDK folder path

希望经过以下设置后您可以开始跑步了npx react-native run-android

这对我有用!