一、適用場(chǎng)景
??? 我們?cè)趯?xiě)應(yīng)用時(shí)可能會(huì)需要調(diào)用系統(tǒng)隱藏的API庭瑰,這些API是我們無(wú)法直接訪問(wèn)的星持,報(bào)如下錯(cuò)誤:
?此時(shí),我們需要將系統(tǒng)AOSP的out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar導(dǎo)入到Android Studio中弹灭,使app能夠訪問(wèn)這些接口督暂。
二、實(shí)現(xiàn)步驟
Step1. 在app目錄下建立libs文件夾穷吮,并將classes.jar包放入該路徑
Step2.在app目錄上右鍵【Open Module Settings】逻翁,點(diǎn)擊左側(cè)【Dependencies】,選擇app捡鱼,點(diǎn)擊【+】選擇【2 Jar Dependency】八回,添加
選擇我們的libs/classes.jar,點(diǎn)擊【OK】
Step3.在Module的build.gradle中驾诈,dependencies自動(dòng)增加依賴配置缠诅,注釋掉下面一行
implementation fileTree(dir: 'libs', include: ['*.jar'])??
并將implementation files('libs/classes.jar')改為
compileOnly files('libs/classes.jar')
最終如下圖所示
Step4.修改Project的build.gradle,在allProjects中增加如下語(yǔ)句
??? gradle.projectsEvaluated {
??????? tasks.withType(JavaCompile) {
??????????? options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\classes.jar')
??????? }
??? }
Step5.修改jar包優(yōu)先級(jí)乍迄,在Moduels的app.iml文件中找到我們的classes.jar包所在行管引,
<orderEntry type="library" name="Gradle: __local_aars__:/Users/mrwong/AndroidStudioProjects/uart_daemon/app/libs/classes.jar:unspecified@jar" level="project" />
將其移動(dòng)到
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
這一行之上,最終如下圖所示:
至此就乓,app可以優(yōu)先訪問(wèn)我們自己的jar包 汉匙。
為了好找直接復(fù)制了一份拱烁,原文地址