启动 jack server 出现 Could not find or load main class com.android.jack.launcher.ServerLauncher的问题

来源:互联网 发布:js获取input type 编辑:程序博客网 时间:2024/05/29 17:48
最近遇到的问题似乎都与权限有关。在编译安卓的过程中出现了如下所示的奇怪错误:
FAILED: /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar  2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 4.8.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-2.28.RELEASE.jar 2.28.RELEASE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.36.CANDIDATE.jar 3.36.CANDIDATE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.7.BETA.jar 4.7.BETA || exit 47 )"
Jack server already installed in "/home/jobs/.jack-server"
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096M -cp /home/jobs/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log
No Jack server running. Try 'jack-admin start-server'
No Jack server running. Try 'jack-admin start-server'
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/utils/arm64/managed_register_arm64.cc
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/optimizing/intrinsics_mips.cc
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/utils/mips/managed_register_mips.cc
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/utils/arm/assembler_arm32.cc
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/optimizing/intrinsics_arm64.cc
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/utils/arm64/assembler_arm64.cc
[  0% 133/42175] host C++: libartd-compiler <= art/compiler/optimizing/intrinsics_x86_64.cc
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
咯咯,其实出现错误一点也不奇怪,事实证明欠下的债迟早要是还的,因为事先在配置安卓编译环境的过程中需要启动jack server就没有启动成功
启动和关闭命令:./prebuilts/sdk/tools/jack-admin kill-server
                             ./prebuilts/sdk/tools/jack-admin start-server
当然也可以到工具所在路径去执行,然而单独启动的结果与图示编译日志产生结果大同小异,所以根本还是解决jack server 启动不了的问题。单独启动,会有如下结果,终端挂住,没有启动成功的迹象。
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096M -cp /home/jobs/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher

几分钟之后,显示 Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log,既然有server log,我们就去看server log好了… 

VirtualBox:~/.jack-server/logs$ cat outputs.txt

ERROR:Could not find or load main class com.android.jack.launcher.ServerLauncher

一番查询,了解到目前网上并没有爆出存在类似的问题,大都是.jack-server目录或者是.jack-settings文件等的读写权限问题,没办法只能根据现有现象当做问题来定位了。

单独启动的时候并未看到有server log之类的日志,只有outputs.txt,好吧,有总比没有好吧,于是开始分析可能出现这个错误的原因,一番折腾,开始怀疑我的jdk工具没有安装好,于是又重现安装一遍;又或者是我的java 类环境变量没有设置好,然后重新配置环境变量地址;还有可能是版本的差异问题…结果都是无济于事。

打开jack-admin脚本查看,com.android.jack.launcher.ServerLauncher貌似是server-start所需要的某个参数,但是检查整个脚本,这个LAUNCHER_NAME好像也没有什么特别的地方,名字写错了???哈哈,并不是。


最后,重新检查jack server 需要的几个目录和文件,发现我的.jack-server是的owner是root用户,难道是群组权限的问题?于是使用管理员权限运行sudo ./jack-admin server-start,虽然运行结果依然像之前一样会挂住,但是意外的发现,logs目录出现真正的jack server log日志,打开查看,果不其然,jack server已经开始运行,但是因为其他的问题又停止了,不过问题就很简单了,都是一些已知文件的读写权限问题,根据提示修改对应的文件就行了rwx => rw


最后jack server启动成功,撒花……

参考资料:
1.安卓编译环境配置:
https://www.cnblogs.com/tsts/p/7554703.html
2.jack server 常见错误:
http://blog.csdn.net/qq_27061049/article/details/70156200
3.jack server 环境配置:
https://www.2cto.com/kf/201707/655536.html
阅读全文
1 0
原创粉丝点击