大家过去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)`
伙计们,请帮助我解决上述问题,任何人都已经面临这样的问题。
提前致谢。
答案 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并安装它。