j2objc gradle插件 - 任务路径'测试'在项目应用程序中找不到

时间:2014-12-23 18:54:21

标签: java android ios gradle j2objc

我正在尝试使用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]

1 个答案:

答案 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插件的作者。