Android 编译(2)——jack-server相关问题

2023-11-03 20:58

本文主要是介绍Android 编译(2)——jack-server相关问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Jack server

The Jack server’s goal is to handle a pool of Jack compiler instances in order to limit memory usage and benefit from already warm instances.

Android7.0系统编译工具链使用了全新的Jack server来取代以往的编译器工具

Jack is a new Android toolchain that compiles Java source into Android dex bytecode. It replaces the previous Android toolchain, which consists of multiple tools, such as javac, ProGuard, jarjar, and dx.
Jack编译器工具是一套新的Android编译工具用来将Java代码转换为Android dex字节代码。

使用问题

Jack server没有安装

报错信息:

Jack server installation not found
prebuilts/sdk/tools/jack-admin: line 57: /home/forlinx/.jack-settings.14348: Permission denied

安装jack-server

cd prebuilts/sdk/tools/
./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar

多用户使用问题

参考链接:
https://www.jianshu.com/p/dc85817b78f8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendationhttps://blog.csdn.net/czy_1125/article/details/78432018https://blog.csdn.net/xw13782513621/article/details/79260207

报错信息:

Jack server already installed in "/home/forlinx/work/.jack-server"
Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'
重新安装配置Jack server
OK3399-android7-source$ rm ~/.jack-server -rf
OK3399-android7-source$ rm ~/.jack-settings
OK3399-android7-source$ cd prebuilts/sdk/tools/
OK3399-android7-source/prebuilts/sdk/tools$  ./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar执行jack-diagnose进行诊断
OK3399-android7-source/prebuilts/sdk/tools$ chmod u+x jack-diagnose
OK3399-android7-source/prebuilts/sdk/tools$ ./jack-diagnose
发现有部分库文件没有安装
OK3399-android7-source/prebuilts/sdk/tools$ sudo apt-get update
OK3399-android7-source/prebuilts/sdk/tools$ sudo apt-get install lsof
OK3399-android7-source/prebuilts/sdk/tools$ ./jack-diagnose

多用户的使用需要在.jack-settings和.jack-server/config.properties这两个配置文件中配置不同的端口
用户A:8000、8001

vi ~/.jack-settings# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8000
SERVER_PORT_ADMIN=8001# Internal, do not touch
SETTING_VERSION=4
vi ~/.jack-server/config.properties#
#Fri Sep 10 07:22:55 UTC 2021
jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=8000
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296
jack.server.admin.port=8001
jack.server.config.version=2
jack.server.time-out=7200

用户B:8100、8101

vi ~/.jack-settings# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8100
SERVER_PORT_ADMIN=8101# Internal, do not touch
SETTING_VERSION=4
vi ~/.jack-server/config.properties#
#Mon Sep 13 02:07:47 UTC 2021
jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=8100
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296
jack.server.admin.port=8101
jack.server.config.version=2
jack.server.time-out=7200

config.properties文件在第一次编译之前没有生成,可以先执行一遍编译,再进行修改

OK3399-android7-source/prebuilts/sdk/tools$ vi /home/forlinx/work/.jack-settings
编译源码,报错后修改新生成的config.properties,端口配置保持一致
OK3399-android7-source/prebuilts/sdk/tools$ vi /home/forlinx/work/.jack-server/config.properties
编译即可通过

question3

Could not execute 'apt-key' to verify signature (is gnupg installed?)
sudo chmod 777 /tmp

question4

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'
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
重新安装配置Jack server
OK3399-android7-source$ rm ~/.jack-server -rf
OK3399-android7-source$ rm ~/.jack-settings
OK3399-android7-source$ cd prebuilts/sdk/tools/
OK3399-android7-source/prebuilts/sdk/tools$  ./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar执行jack-diagnose进行诊断
OK3399-android7-source/prebuilts/sdk/tools$ chmod u+x jack-diagnose
OK3399-android7-source/prebuilts/sdk/tools$ ./jack-diagnose

有可能会遇到多用户端口问题,所以建议提前修改配置.jack-settings和.jack-server/config.properties

TBC(jack server安装、与openjdk对比、用于编译什么内容、运行机制)

这篇关于Android 编译(2)——jack-server相关问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/340818

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu