主页 > 游戏开发  > 

Lineageos22.1(Android15)编译隐藏API的android.jar

Lineageos22.1(Android15)编译隐藏API的android.jar
一、前言

有时候会我们开发系统应用需要一些系统的方法或者属性之类的,但是被隐藏导致无法正常显示,因为SDK提供的android.jar被隐藏了,所以只能看到sourcecode,实际上编译是会报错的,比如: 一般这种无法是两种,直接添加一个类,同包名同类名,或者依赖framework.jar,可以骗过编译器编译成功.但是都是无法解决这个爆红的问题,我查了很多修改iml的方法,但是高版本的android studio实际上iml已经没啥东西了,所以目前的修改Iml的方法我测试基本实效,现在只能替换sdk目录下的android.jar来实现了。

二、编译android.jar

首先我们进入Lineageos的源码目录,依次执行

. build/envsetup.sh breakfast blueline make sdk

然后我们去out目录下面提取3个jar

lineageos/out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar lineageos/out/target/common/obj/PACKAGING/android_jar_intermediates/android-stubs-src.jar lineageos/out/target/common/obj/JAVA_LIBRARIES/framework-minus-apex_intermediates/classes-header.jar

提取之后就可以制作我们的android.jar了,步骤如下 1.新建文件夹target 2.提取android.jar到target目录 3.提取class-header.jar同样到target 然后替换合并同名文件 4.在taget目录下执行命令打包

jar -cvfM android.jar .

最后得到android.jar

三、替换验证

我们打开SDK下android-35的目录

这里我们替换android.jar为我们刚刚生成的文件,然后android-stubs-src.jar为源码编译后提取的jar。然后sync gradle,同步之后可能还会爆红,这时候可以重启一下android studio。这时候可以看到爆红已经解决

标签:

Lineageos22.1(Android15)编译隐藏API的android.jar由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Lineageos22.1(Android15)编译隐藏API的android.jar