gradle > Task :app:externalNativeBuildDebug FAILED android_gradle_build.json(没有这样的文件或目录)

H. *_*ley 7 android gradle android-ndk gradlew android-studio

我正在尝试使用命令行从命令行构建一个 android 项目

./gradlew app:assembleDebug
Run Code Online (Sandbox Code Playgroud)

但是,当我构建任务失败时:

> Task :app:externalNativeBuildDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:externalNativeBuildDebug'.
> java.io.FileNotFoundException: /Users/hcwiley/MyProject/app/.externalNativeBuild/cmake/debug/arm64-v8a/android_gradle_build.json (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

如果我Sync Project with Gradle Files在 Android Studio 中运行它可以解决问题。

我如何从命令行执行此操作,这样我就不必为这个基本的东西启动 Android Studio?

还要注意的是,在较新版本的 Gradle 中.externalNativeBuild已被替换.cxx

我已经尝试过这些无济于事:

rm -rf app/.externalNativeBuild app/build
./gradlew cleanBuildCache
./gradlew clean
Run Code Online (Sandbox Code Playgroud)

我的gradle/wrapper/gradle-wrapper.properties

#Mon Oct 07 16:53:24 CDT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
Run Code Online (Sandbox Code Playgroud)

Apr*_*iec 22

尝试使用--rerun-tasks命令行参数重新运行所有任务。这将强制 Gradle 运行所有任务,同时忽略最新检查。来自Gradle 文档

这将强制test[... 或在您的情况下,app] 和所有任务依赖项test执行。这有点像 running gradle clean test,但不会删除构建生成的输出。

  • `./gradlew app:assembleDebug --rerun-tasks` 它有效!谢谢 (5认同)