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

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本