pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

在 Gradle 4.x 中使用 aar 庫導致缺少使用 api 的依賴

Use an aar library cause missing dependencies using api in Gradle 4.x(在 Gradle 4.x 中使用 aar 庫導致缺少使用 api 的依賴項)
本文介紹了在 Gradle 4.x 中使用 aar 庫導致缺少使用 api 的依賴項的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

當我使用 *.aar 文件而不是使用 Gradle 4.x 的模塊并遵循 docu 關于 implementsapi,我希望使用 api 包含的 aar 文件包括所有依賴項,但沒有.

When I build an app with a *.aar file instead of the module with Gradle 4.x and following the docu concerning implements and api, I expect using api the included aar file has all dependencies included, but it hasn't.

當你這樣做時

git clone https://github.com/hannesa2/aar_dependency
./gradlew clean assembleDebug

表示

dependencies {
    api project(':mylibrary')

它工作正常.

但是當我使用 lib-module 的 insted 之前生成的 *.aar 文件作為依賴項時

But when I use insted of lib-module the previous generated *.aar file as dependency

 dependencies {
    api 'com.example.my.mylibrary:mylibrary-debug@aar'

(在 demo app 中即可)

git checkout with_aar
./gradlew clean assembleDebug

我遇到了這個

任務 :app:transformClassesWithDesugarForDebug線程main"中的異常 java.lang.TypeNotPresentException:類型 io.reactivex.ObservableTransformer 不存在在 sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:85)在 sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:63)在 sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41)在 java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:1067)在 com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:399)在 org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(未知來源)在 org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(未知來源)

Task :app:transformClassesWithDesugarForDebug Exception in thread "main" java.lang.TypeNotPresentException: Type io.reactivex.ObservableTransformer not present at sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:85) at sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:63) at sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41) at java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:1067) at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:399) at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(Unknown Source) at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(Unknown Source)

因為我通常在將 aar 工件上傳到我們公司 Maven Nexus 時遇到這個問題,所以我創建了這個 demo-repo 以準確顯示問題所在.在演示應用程序或使用 Maven 中,我看到了同樣的問題.

Because I ordinary run into this with uploading the aar artifacts into our company Maven Nexus, I created this demo-repo to show exactly what's wrong. In demo app or using Maven I see the same issue.

有人知道我做錯了嗎?

推薦答案

我能夠解決它.主要問題是使用 api

I was able to solve it. The main issue was Android O with Gradle 4.x using api

dependencies {
    api 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    api "io.reactivex.rxjava2:rxandroid:$versions.libs.rxAndroid"

大多數答案都與這樣的事情有關

Most answers are concerning something like this

publishing {
    publications {
        mipartner(MavenPublication) {
            groupId '...'
            artifactId '..'
            version 1.0
            artifact "$buildDir/outputs/aar/myLib-release.aar"

            //generate pom nodes for dependencies
            pom.withXml {
                def dependenciesNode = asNode().appendNode('dependencies')
                configurations.compile.allDependencies.each { dependency ->
                    def dependencyNode = dependenciesNode.appendNode('dependency')
                    dependencyNode.appendNode('groupId', dependency.group)
                    dependencyNode.appendNode('artifactId', dependency.name)
                    dependencyNode.appendNode('version', dependency.version)
                }
            }
        }
    }

    repositories{
        maven {
            url "https://some.url.com"
        }
    }
}

但是在生成的 *.pom 中沒有包含依賴項,在將此行更改為 api 后,依賴項包含在部署的 pom 中!

but here in the resulting *.pom there are no dependencies included, after change this line to api the dependencies are included in deployed pom !

configurations.api.allDependencies.each { dependency ->

在此之后您可以輕松使用 aar 文件

after this you can easily consume the aar file

dependencies {
    api "com.mylib.net:mylib:1.0"

這篇關于在 Gradle 4.x 中使用 aar 庫導致缺少使用 api 的依賴項的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 双舌接地线-PC68数字式高阻计-ZC36|苏海百科| 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 塑料薄膜_PP薄膜_聚乙烯薄膜-常州市鑫美新材料包装厂 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司 | 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 创客匠人-让IP变现不走弯路| 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 工业CT-无锡璟能智能仪器有限公司 | 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 阜阳在线-阜阳综合门户| 酸度计_PH计_特斯拉计-西安云仪 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 |