我刚刚通过KMM插件创建了一个新的KMM项目,但无法在项目的Xcode iosApp部分中运行甚至调试。当我尝试从Android Studio运行iosApp时,构建过程失败(Command PhaseScriptExecution失败,退出代码为非零)
建筑的最后几行是:
失败:生成失败,出现异常。
- 出了什么问题:任务":shared:compileKotlinIosX64"的执行失败。
编译已完成,但有错误
- 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。
- 从https://help.gradle.org获取更多帮助
8s中构建失败1个可操作任务:1已执行命令阶段ScriptExecution失败,退出代码为非零
- 构建失败**
以下生成命令失败:阶段脚本执行运行\脚本/用户/tamegajr/Android Studio 项目/测试KMM5/build/ios/www.example.com(1次失败)iosApp.build/Release-iphonesimulator/iosApp.build/Script-7555FFB5242A651A00829871.sh (1 failure)
有谁能帮忙解决这个问题吗?
4条答案
按热度按时间ca1c2owp1#
我遇到了同样的问题,但这个解决方案帮了我:
通过KMM插件,您将获得(依赖项):
更改此内容:
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10")
对此:
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31")
zzoitvuj2#
对我来说,问题是,即使我在AndroidStudio和build.gradle文件中的所有地方都设置为使用java 11,它仍然尝试使用java 1.8代替。
然后我查看了项目的
gradlew
文件,发现它使用了JAVA_HOME路径变量。因为我还有其他项目,并且这些项目使用java 1.8,所以我在
.zshrc
文件中将JAVA_HOME变量设置为1.8。我把这个改成了11(我之前下载的),重新启动了AndroidStudio --使用Invalidate缓存并重新启动,只是为了确定一下--它立刻就工作了。
我能够在AndroidStudio的iOS模拟器中运行代码。
在Mac上,在我写的
.zhsrc
文件中之前:
export JAVA_HOME=/Users/username/Library/Java/JavaVirtualMachines/corretto-1.8.0_292/Contents/Home
之后:
export JAVA_HOME=/Users/username/Library/Java/JavaVirtualMachines/corretto-11.0.18/Contents/Home
如果您在项目中使用其他Java版本,则必须在JAVA_HOME变量中设置其版本号。还要检查Library/Java/...文件夹的路径。如果与上面的路径不同,则进行相应的更改。
of1yzvn43#
我发现的解决方案是取消注解“build.gradle.kts(:shared)"中的“iosSimulatorArm64()”。
}
fgw7neuy4#
在对2 - 3个月前的KMM示例项目进行了一些代码审查并将其与新项目进行比较后,我找到了一个解决方案,可以解决在IOS模拟器上运行iosApp时出现的此构建故障,只需将此更改应用于根项目上的build. gradle. kts即可:
通过KMM插件,您将获得(依赖项):
将其更改为:
就是这样,问题解决了。我希望Jetbrains上的人能在KMM插件的未来更新中解决这个问题。
2020年8月30日:
Jetbrains似乎已经更正了一些问题,现在您可以使用版本1.7.10(目前最后一个稳定版本)构建和运行KMM项目。
顺便说一句,如果你有任何麻烦是值得检查这个堆栈溢出后有关JDK版本使用的Android Studio:How to set or change the default Java (JDK) version on macOS?
Multiplatform error when building iosApp: Command PhaseScriptExecution failed with a nonzero exit code