linux怎么查看本机内存大小
304
2022-09-07
[IOS]How to use J2Objc
一.下载:
code,需要编译:
参考:invalid flag错误.
需要装maven
或者直接下载完整zip(推荐,更简单)
2.按照教程:
官方:${J2OBJC_HOME}/lib ${J2OBJC_HOME}/include
发现还是会报错,官方的guide里面没有说要添加一下lib
在other linker flags:-liconv -lz
参考:rules,例如:
if [ ! -f "${J2OBJC_HOME}/j2objc" ]; then echo "J2OBJC_HOME is not correctly defined, currently set to '${J2OBJC_HOME}'"; exit 1; fi;"${J2OBJC_HOME}/j2objc" -d ${DERIVED_FILES_DIR} -sourcepath "${PROJECT_DIR}/your project" --no-package-directories -use-arc --prefix Java=J -g ${INPUT_FILE_PATH};
build一下转换
3.调用:
首先要注意类名,包和路径会变成类名
script里--prefix Othello.Engine(package name)=xxxx可以自定义类前缀
然后先#import "xxxx.h" (原Java类名),可能没有代码提示,需要import,才能调用,调用使用前缀+原java类名
一些错误解决:
Xcode 10 Error: Multiple commands produce
参考:you use CocoaPods, click Xcode menu file -> Workspace Settings , And click Build system choice Legacy Build System
you not use CocoaPods, same of top , select Project Settings
4.--no-package-directories:
使用这个命令,就会在output Files的路径那里生成没有子包的转换文件,这样XCODE可以直接识别,但是类名不能重复,要不会覆盖掉.
如果不使用这个命令,可以生成有子包路径的转换文件,但是XCODE只会在output files的路径找文件,不会进入到子文件夹中,因此会找不到转换成功后的文件.
5.坑:
首先j2objc不是万能的,例如javax里面关于security和cypto的getInstance()方法就会报错,即使找到源码,转完把OC代码放进项目里面直接用也是报错的.
有时候通过xcode转是报错的,通过命令行反而会成功.可以转jar,但是jar必须是source jar
j2objc -d dest ./source/Test.jar --no-package-directories -use-arc
* 勾选export java files andresources
可以把用命令行转完的source files放进项目,像一般OC那样使用.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~