android studio 导入系统的framework-header.jar库

由于开发系统应用需要用到hide的api 以及  android.os.SystemProperties 的类,这些在开发的api里面是不带有的,如果需要使用需要导入对应jar包

dependencies {
    //把自己需要的jar放在对应的libs里面  使用compileOnly 方式,这样编译apk不会把这个jar打包到apk
    //里面,这个系统里面含有这个jar包
    compileOnly(files('libs/framework-header.jar'))
 
}

这样导入你会发现系统的hide api使用不了,并且报红是由于 android studio 优先使用android.jar 而不是优先使用framework.jar里面的类,这时候需要手动在app工程 里面 ,build.gradle里面修改顺序,

在 dependencies {xxxx} 下面添加以下代码


preBuild {
    println('preBuild================Looking=============')
    println('把api里面的 sdk 移到最后面')
//    doLast {
    println('Looking for doLast')
//        def imlFile = file(project.name + ".iml")
//        def imlFile = file("./.idea/modules/"+project.name + ".mian.iml")
    //这个是你的工程里面生成的iml文件请按照自己工程添加 ,其他地方可以不用修改
    def imlFile = file("./.idea/modules/"+ "wzfdemo.iml")

    if (!imlFile.exists()) {
        println("IML file not found!")
//            return
    }


    println('Change ' + project.name + '.iml order')
    try {
        // 使用 XmlParser 解析指定的 .iml 文件
        def parsedXml = (new XmlParser()).parse(imlFile)
        // 从解析的 XML 中查找类型为 'jdk' 的节点
        def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
        // 从 XML 树中移除找到的 jdkNode
        parsedXml.component[1].remove(jdkNode)
//        // 构建一个字符串,用于表示 Android SDK 的 JDK 名称
        def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
//        // 在 XML 中增加一个新的 'orderEntry' 节点,表示新的 JDK 配置
        new groovy.util.Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
        // 将修改后的 XML 序列化并写回原始文件
        groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
    } catch (FileNotFoundException e) {
        // 如果 .iml 文件未找到,捕获异常并打印错误信息
        println('Change ' + project.name + '.iml order  eerror========================='+e.toString())
    }


//    }
    println('Looking for preBuild   end')
}

如果你工程里面未生成如图所示的

File-->Settings 或者 (ctrl+alt+s) 打开  找到 Build,Excution,Deployment --> Gradle  如图所示

这个时候就可以使用系统的hide api .

如果编译apk出现问题请参考 博主林外的一篇文章有讲到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值