Android15之解决:Dex checksum does not match for dex:services.jar问题(二百三十五)

news/2024/10/11 22:48:30 标签: Android15, services.jar编译, not match dex

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.services.jar介绍
    • 🌻3.解决方案
      • 🐓3.1 修改一:
      • 🐓3.2 修改二:
      • 🐓3.3 编译

🌻1.前言

本篇目的:Android15之解决:Dex checksum does not match for dex:services.jar问题

  • 具体报错:
E/zygote64( 2702): Dex checksum does not match for dex: /system/framework/services.jar.Expected: 282363620, actual: 1784922611

🌻2.services.jar介绍

services.jar是Android系统中的一个重要Java归档文件(JAR),它位于Android操作系统的/system/framework/目录下。这个JAR文件包含了一系列服务和框架API,这些服务和API是Android系统运行的核心组成部分,它们为Android应用和系统本身提供了底层的功能支持。
services.jar中封装了Android平台提供的一些关键服务,例如,窗口管理服务(WindowManagerService)、活动管理服务(ActivityManagerService)、通知管理服务(NotificationManagerService)等。这些服务通常以系统服务的形式运行在Android系统的System Server进程中,为上层应用提供稳定可靠的服务接口。
以下是services.jar中包含的一些关键服务和功能:

  1. 窗口管理服务(WindowManagerService):负责管理所有应用窗口的显示和交互。它处理窗口的创建、大小调整、层叠顺序等操作,并确保用户界面流畅运行。
  2. 活动管理服务(ActivityManagerService):负责管理应用程序的生命周期,包括应用的启动、切换、终止等。它还负责进程和内存管理,确保系统资源得到合理分配。
  3. 通知管理服务(NotificationManagerService):负责处理系统的通知消息。应用可以通过这个服务向用户发送通知,如状态栏通知、声音、震动等。
  4. 内容提供者服务(ContentProvider):提供了一种在应用程序间共享数据的机制。通过内容提供者,应用可以读取和修改其他应用的数据,如联系人信息、媒体库等。
  5. 输入管理服务(InputMethodManager):负责处理输入事件,特别是与软键盘相关的输入。它管理软键盘的显示、隐藏以及输入法的切换。
  • services.jar还包含了其他许多服务和API,如电源管理、账户管理、搜索服务、壁纸服务等。这些服务和API为开发者提供了丰富的功能,使得他们能够开发出功能丰富、交互性强的Android应用。
  • 由于services.jar属于Android系统的内部实现,普通开发者通常不会直接与其交互。相反,开发者通常会通过Android SDK提供的公共API来使用这些服务。这些公共API是对services.jar中服务的封装和抽象,使得开发者能够在不了解底层实现细节的情况下使用这些服务。
  • services.jar的重要性体现在它是Android系统服务的中枢,几乎所有的系统级别操作和应用间的交互都依赖于它提供的功能。因此,对于理解Android系统架构和深入开发Android应用的开发者来说,了解services.jar的作用和内容是非常有价值的。

🌻3.解决方案

🐓3.1 修改一:

  • build/make/core/tasks/dex_preopt_check.mk
+ DISABLE_DEXPREOPT_CHECK := true
ifneq (true,$(DISABLE_DEXPREOPT_CHECK))
  # Skip the check if the system server is not installed for the product.
  ifneq (,$(filter services,$(PRODUCT_PACKAGES)))
    $(call maybe-print-list-and-error,\
      $(filter-out $(ALL_DEFAULT_INSTALLED_MODULES),$(DEXPREOPT_SYSTEMSERVER_ARTIFACTS)),\
      Missing compilation artifacts. Dexpreopting is not working for some system server jars. See \
      https://cs.android.com/android/platform/superproject/+/master:build/make/core/tasks/README.dex_preopt_check.md \
    )
  endif
endif

🐓3.2 修改二:

  • frameworks/base/services/Android.bp
java_library {
    name: "services",
+ 	enforce_uses_libs: false,
+     dex_preopt: {
+         enabled: false,
+     },
}
  • Android.mk写法
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_DEX_PREOPT := false

🐓3.3 编译

# make services -j20

http://www.niftyadmin.cn/n/5700322.html

相关文章

CV方法再学习

轻量化模型 Mobile系列(V1~V3) MobileNetV1 MobileNetV1之所以轻量,与深度可分离卷积的关系密不可分 深度可分离卷积 主要是两种卷积变体组合使用,分别为逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise C…

Java的IO操作与文件的基本常识

首先什么是IO操作呢? IO操作其实解释操作硬盘 1. 文件系统操作 创建文件,删除文件,重命名文件,创建目录…操作 2. 文件内容操作 进行读与写操作 先来了解一下基本的文件知识方便学习接下来的IO操作 文件路径 文件路径是从数根节点触发,沿着树杈一直往下走,到达目标文件…

[SQL] 数据库增删改操作

一 增加 关键字: insert注意: 插入的数据如果是: 字符串和日期类型数据需要包含在单引号内。 1.1 给指定字段添加数据 insert into 表名 (字段名1,字段名2,...) values(值1,值2...); 1.2 给全部字段添加数据 不指定字段名时要添加所有字段并且值一一对应。即使…

『网络游戏』进入游戏主城UI跳转主城【26】

首先在Unity客户端中创建一个空节点重命名为MainCityWnd 设置父物体为全局 创建空节点钉在左上角作为角色信息UI 在钉子下创建Image 创建脚本:MainCityWnd.cs 编写脚本:MainCityWnd.cs 挂载脚本 创建脚本:MainCitySys.cs 编写脚本&#xff1a…

CDN绕过学习

1.什么是CDN? CDN就是分布在各个地区的服务器,这些服务器储存着数据的副本。 哪些服务器比较接近你,当你发起请求时,提前就会快速为你提供服务。 总结来说就是: 其实就是用来加速访问的,以及缓解压力&a…

vue基础语法的用法(API组合式风格)

一、项目文件结构 .vscode我们在那个编辑器中编辑时就会有对应的这个文件夹,不是固定的 进行编写代码前先把资源自带的页面删除,以防误导,可以像我一样的删除内容 vue文件结构 二、你好 vue el插值 script代码 v-text插值 script代码 三、…

Python 如何使用 Bert 进行中文情感分析

前言 在自然语言处理(NLP)领域,情感分析是一个非常常见且重要的应用。情感分析通常用于识别文本中的情感,例如判断一条微博或评论是正面、负面还是中性。在过去的几年中,随着深度学习的发展,BERT&#xff…

HCIP--以太网交换安全(二)端口安全

端口安全 一、端口安全概述 1.1、端口安全概述:端口安全是一种网络设备防护措施,通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理: 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…