我正在尝试使用j2obc for gradle将我的Android应用程序移植到iOS,但我收到此错误并且似乎无法弄清楚如何修复它。
完整的事情:
13:43:50.477 [ERROR] [org.gradle.BuildExceptionReporter]
13:43:50.482 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
13:43:50.489 [ERROR] [org.gradle.BuildExceptionReporter]
13:43:50.492 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
13:43:50.496 [ERROR] [org.gradle.BuildExceptionReporter] Could not determine the dependencies of task ':app:j2objcTranslate'.
13:43:50.499 [ERROR] [org.gradle.BuildExceptionReporter] > Task with path 'test' not found in project ':app'.
13:43:50.503 [ERROR] [org.gradle.BuildExceptionReporter]
13:43:50.506 [ERROR] [org.gradle.BuildExceptionReporter] * Try:
13:43:50.510 [ERROR] [org.gradle.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.
13:43:50.517 [LIFECYCLE] [org.gradle.BuildResultLogger]
13:43:50.523 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
13:43:50.529 [LIFECYCLE] [org.gradle.BuildResultLogger]
答案 0 :(得分:0)
j2objc插件现已修复,可用于翻译Android应用程序项目。请注意,j2objc并非旨在翻译整个应用程序 - 仅用于业务逻辑。理想情况下,这应该通过良好的单元测试与UI层完全分离,理想情况下是一个没有Android依赖项的独立Java项目。 UI层应该以每个平台的本地语言实现。要解决此问题,请下载该插件的更新版本:
https://gist.github.com/brunobowden/58d6e311ab96760fc371
此处有更多详情:
https://github.com/google/j2objc/blob/master/README.md
历史错误说明:
该插件取决于"测试"来自Java插件的任务,所以在进行翻译之前,它将编译和测试Java代码和单元测试。这意味着在尝试转换为Objective-C之前,确保您的代码正确且使用Java。这就是为什么最好有一个单独的共享Java项目,没有任何Android依赖项,并单独翻译。
该插件目前不是为了在“com.android.application”中翻译项目而设计的。应用了gradle插件(现已修复,如上所述)。我将努力解决这个问题,或者提供更好的错误解释。
暂时删除此依赖项(虽然我不知道其他部分可能会失败),但请从j2objc.gradle的以下部分中删除dependsOn: "test"
:
tasks.create(name: "j2objcTranslate", type: J2objcTranslateTask,
dependsOn: "test") {
我是j2objc插件的作者。