当我使用*.aar文件而不是使用Gradle 4.x的模块构建应用程序并遵循有关implements和api的文档时,我希望使用api包含的aar文件包含所有依赖项,但它没有.
当你这样做
git clone https://github.com/hannesa2/aar_dependency
./gradlew clean assembleDebug
Run Code Online (Sandbox Code Playgroud)
手段
dependencies {
api project(':mylibrary')
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但是当我使用lib-module的insted时,先前生成的*.aar文件作为依赖
dependencies {
api 'com.example.my.mylibrary:mylibrary-debug@aar'
Run Code Online (Sandbox Code Playgroud)
(在演示应用程序中)
git checkout with_aar
./gradlew clean assembleDebug
Run Code Online (Sandbox Code Playgroud)
我碰到了这个
任务:app:transformClassesWithDesugarForDebug线程"main"中的异常java.lang.TypeNotPresentException:在sun.invoke.util.BytecodeDescriptor的sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:85)中输入不存在的io.reactivex.ObservableTransformer .parseMethod(BytecodeDescriptor.java:63)位于com.google.devtools的java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:1067)的sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41).在org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(未知来源)的org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(未知来源)的build.android.desugar.LambdaDesugaring $ InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:399)
因为我将这些aar工件上传到我们的Maven Nexus公司时遇到了这个问题,所以我创建了这个demo-repo以准确显示出错了什么.在演示应用程序或使用Maven我看到同样的问题.
有人知道我做错了吗?