npx expo run:android
不工作。没有我没有尝试过的方法。我该怎么办?谢谢。
PS C:\Users\abc\Desktop\my-app> npx expo run:android
› Building app...
Configuration on demand is an incubating feature.
FAILURE: Build failed with an exception.
* Where:
Script 'C:\Users\abc\Desktop\my-app\node_modules\expo-modules-autolinking\scripts\android\autolinking_implementation.gradle' line: 356
* What went wrong:
A problem occurred evaluating project ':expo'.
> A problem occurred configuring project ':expo-modules-core'.
> Failed to notify project evaluation listener.
> No enum constant org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.JvmTargetValidationMode.WARN¦NG
> KotlinJvmAndroidCompilation with name 'debugAndroidTest' not found.
* 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
BU¦LD FAILED in 13s
5 actionable tasks: 5 up-to-date
Error: C:\Users\abc\Desktop\my-app\android\gradlew.bat exited with non-zero code: 1
Error: C:\Users\abc\Desktop\my-app\android\gradlew.bat exited with non-zero code: 1
at ChildProcess.completionListener (C:\Users\abc\Desktop\my-app\node_modules\@expo\spawn-async\build\spawnAsync.js:52:23)
at Object.onceWrapper (node:events:632:26)
at ChildProcess.emit (node:events:517:28)
at cp.emit (C:\Users\abc\Desktop\my-app\node_modules\cross-spawn\lib\enoent.js:34:29)
at maybeClose (node:internal/child_process:1098:16)
at ChildProcess._handle.onexit (node:internal/child_process:303:5)
...
at Object.spawnAsync [as default] (C:\Users\abc\Desktop\my-app\node_modules\@expo\spawn-async\build\spawnAsync.js:17:21)
at spawnGradleAsync (C:\Users\abc\Desktop\my-app\node_modules\@expo\cli\build\src\start\platforms\android\gradle.js:72:46)
at Object.assembleAsync (C:\Users\abc\Desktop\my-app\node_modules\@expo\cli\build\src\start\platforms\android\gradle.js:52:18)
at runAndroidAsync (C:\Users\abc\Desktop\my-app\node_modules\@expo\cli\build\src\run\android\runAndroidAsync.js:36:24)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
字符串
2条答案
按热度按时间zsbz8rwp1#
我用
expo-build-properties
将Kotlin版本升级到1.9.0,它工作了。展会名称:https://docs.expo.dev/versions/latest/sdk/build-properties/
app.json
字符串
piwo6bdm2#
您在Gradle脚本中遇到了Kotlin配置问题,特别是枚举常量
JvmTargetValidationMode
和缺少KotlinJvmAndroidCompilation
。为了确保这一点,请检查Gradle配置中的Kotlin插件是否为最新,以及您的项目是否使用了兼容版本的Gradle和Android Gradle插件(
./gradlew wrapper --gradle-version=<latest_version>
,请参阅Gradle releases)。如果使用Android Studio(./gradlew clean
),请清理项目并使缓存无效。尝试重建项目。如果问题仍然存在,请考虑检查错误中提到的特定行(
autolinking_implementation.gradle
的第356行),以查看是否存在语法错误或脚本问题。另见“Expo build Troubleshoot build errors and crashes“
上面提到的是用于排除
npx expo run:android
命令的故障。如果你在当地建造:
autolinking_implementation.gradle
脚本中的一行,请检查该行是否存在与Kotlin配置相关的任何问题。它可能引用了与安装的Kotlin版本不匹配的Kotlin枚举或配置。--stacktrace
选项的build命令,以获取错误的详细跟踪信息,这可以提供一些线索。字符串
请记住,在进行更新后,通过运行以下命令将更改与项目同步:
型
请注意,
npx eas build -p android --local
命令用于EAS Build,这与Expo CLI的run:android
命令不同。run:android
命令旨在在本地Android模拟器或设备上运行您的项目,它应该与正确的配置和相关工具的兼容版本一起工作。OP Blogger Klik的answer证实了用
expo-build-properties
将Kotlin版本升级到1. 9. 0就足够了。使用
expo-build-properties
配置原生构建属性(如Kotlin版本)是管理Expo项目内兼容性的绝佳方法。为了将来的参考或其他面临类似问题的人,如果尚未将
expo-build-properties
添加到项目中,则可以通过安装expo-build-properties
来应用这些更改:型
然后在
app.json
或app.config.js
中配置Kotlin版本:型
参见“Expo BuildProperties“。
更改配置后,重新生成项目:
型
该方法允许对本机构建过程进行细粒度控制,从而更容易与Expo项目所依赖的Kotlin和其他构建工具的必要版本保持一致。