" J2OBJC_HOME \ not \ correct \ defined \ in \ Settings.xcconfig

时间:2017-11-16 05:46:24

标签: java objective-c j2objc

大家过去2到3天我正在尝试运行J2OBJC转换的示例项目。首先我遇到了找不到j2objc命令的问题,通过添加/ etc / paths文件的路径解决了这个问题。现在我遇到了J2OBJC_HOME路径未正确定义的问题。

`/ bin / sh -c if \ [\!\ -f \\" $ {J2OBJC_HOME} / j2objc \" \]; \ then \ echo \ \" J2OBJC_HOME \不正确\定义\在\ Settings.xcconfig,\ current \ set \ to \ \' $ {J2OBJC_HOME} \' \"; \ exit \ 1; \ fi; \ \" $ {J2OBJC_HOME} / j2objc \" \ -d \ $ {DERIVED_FILES_DIR} \ -sourcepath \ \" $ {PROJECT_DIR} / Classes \" \ --no-package -directories \ -use-arc \ --prefix \ Othello.Engine = JOE \ -g \ $ {INPUT_FILE_PATH};

警告:发生了非法的反射访问操作 警告:com.google.devtools.j2objc.javac.JavacEnvironment(文件:/ Users / ***** / Documents / j2objc-2.0.5 / lib / j2objc.jar)非法反射访问字段com.sun.tools .javac.code.Symtab.java_base 警告:请考虑向com.google.devtools.j2objc.javac.JavacEnvironment的维护者报告此情况。 警告:使用--illegal-access = warn启用进一步非法反射访问操作的警告 警告:将来的版本中将拒绝所有非法访问操作 错误:内部错误翻译" / Users / ***** / Downloads / j2objc-sample-reversi-master / Classes / Othello / Engine / Score.java" java.lang.NoSuchFieldError:运算符     在com.google.devtools.j2objc.javac.TreeConverter.convertBinary(TreeConverter.java:513)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:346)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertArrayAccess(TreeConverter.java:476)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:230)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertAssignment(TreeConverter.java:497)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:236)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertExpressionStatement(TreeConverter.java:691)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:263)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertBlock(TreeConverter.java:543)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:238)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertMethodDeclaration(TreeConverter.java:888)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:283)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertAbstractTypeDeclaration(TreeConverter.java:390)     在com.google.devtools.j2objc.javac.TreeConverter.convertClassDeclaration(TreeConverter.java:603)     在com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:246)     在com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202)     在com.google.devtools.j2objc.javac.TreeConverter.convertCompilationUnit(TreeConverter.java:173)     在com.google.devtools.j2objc.javac.JavacParser.parseFiles(JavacParser.java:173)     在com.google.devtools.j2objc.pipeline.FileProcessor.processBatch(FileProcessor.java:141)     在com.google.devtools.j2objc.pipeline.FileProcessor.processInputs(FileProcessor.java:70)     在com.google.devtools.j2objc.pipeline.TranslationProcessor.processInputs(TranslationProcessor.java:78)     在com.google.devtools.j2objc.J2ObjC.run(J2ObjC.java:127)     在com.google.devtools.j2objc.J2ObjC.main(J2ObjC.java:177)

线程中的异常" main"显示java.lang.NullPointerException     在com.google.devtools.j2objc.javac.JavacParser.parseFiles(JavacParser.java:175)     在com.google.devtools.j2objc.pipeline.FileProcessor.processBatch(FileProcessor.java:141)     在com.google.devtools.j2objc.pipeline.FileProcessor.processInputs(FileProcessor.java:70)     在com.google.devtools.j2objc.pipeline.TranslationProcessor.processInputs(TranslationProcessor.java:78)     在com.google.devtools.j2objc.J2ObjC.run(J2ObjC.java:127)     在com.google.devtools.j2objc.J2ObjC.main(J2ObjC.java:177)`

伙计们,请帮助我解决上述问题,任何人都已经面临这样的问题。

提前致谢。

1 个答案:

答案 0 :(得分:1)

喜欢大多数" * _ HOME"设置,你需要指定的东西(如JAVA_HOME,KOTLIN_HOME,GROOVY_HOME等)。编辑Settings.xconfig并将J2OBJC_HOME设置为添加到/ etc / paths的相同路径。

下一个问题是j2objc不能与Java 9 JDK一起运行(即将推出)。好消息是,可以在Mac上安装多个JDK,j2objc脚本将选择安装的最新Java 8 JDK,无论Java 9 JDK是否为默认值。转到Oracle's Java SE Downloads page,获取最新的Java 8 JDK并安装它。