当前位置: 首页 > 知识库问答 >
问题:

导入自定义Android库时transformClassesWithDesugarForDebug构建错误

后源
2023-03-14
Exception in thread "main" java.lang.TypeNotPresentException: Type org.openjdk.jdi.ReferenceType 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.toMethodHandle(LambdaDesugaring.java:599)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.toJvmMetatype(LambdaDesugaring.java:586)
    at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitInvokeDynamicInsn(LambdaDesugaring.java:401)
    at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(Unknown Source)
    at org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn(Unknown Source)
    at org.objectweb.asm.ClassReader.a(Unknown Source)
    at org.objectweb.asm.ClassReader.b(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:401)
    at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:326)
    at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:280)
    at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:584)
Caused by: java.lang.ClassNotFoundException: Class org.openjdk.jdi.ReferenceType not found
    at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:53)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.invoke.util.BytecodeDescriptor.parseSig(BytecodeDescriptor.java:83)
    ... 16 more
apply plugin: 'com.android.application'

repositories {
  maven { url 'http://my.artifactory.repo.com/artifactory/' }
}

android {
  compileSdkVersion 26
  defaultConfig {
    applicationId "com.whatever.myapplicationtest"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
    }
  }

  buildTypes {
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'com.android.support:appcompat-v7:26.1.0'
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

  implementation('com.whatever.coollibrary:module:1.0.1@aar') {
    transitive = true
  }
  annotationProcessor 'com.google.auto.factory:auto-factory:1.0-beta5'
  annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
}
apply plugin: 'com.android.library'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

apply plugin: 'maven-publish'

buildscript {
  repositories {
    jcenter()
    google()
  }
}

android {
  compileSdkVersion 26
  defaultConfig {
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 1
    versionName "0.1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }

  buildTypes {    
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }

  packagingOptions {
    exclude 'META-INF/services/javax.annotation.processing.Processor'
    exclude 'META-INF/rxjava.properties'
  }

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])

  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.21"

  implementation 'com.android.support.constraint:constraint-layout:1.0.2'
  implementation "com.android.support:appcompat-v7:26.1.0"
  implementation "com.android.support:cardview-v7:26.1.0"
  implementation "com.android.support:support-v4:26.1.0"
  implementation "com.android.support:design:26.1.0"

  implementation project(':javaModule1')
  implementation project(':javaModule2')
  implementation project(':javaModule3')
  implementation project(':androidModule')

  provided 'com.google.auto.factory:auto-factory:1.0-beta5'
  annotationProcessor 'com.google.auto.factory:auto-factory:1.0-beta5'

  implementation 'com.google.dagger:dagger:2.11'
  annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
  kapt 'com.google.dagger:dagger-compiler:2.11'
  provided 'javax.annotation:jsr250-api:1.0'
  implementation 'io.reactivex.rxjava2:rxjava:2.1.3'
  implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
  implementation 'com.squareup.picasso:picasso:2.5.2'

  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

共有1个答案

百里成仁
2023-03-14

经过大量的测试和不同的方法,我发现这个问题与自定义库中包含的本地Java模块有关。

将这些模块转换成Android模块解决了所有问题。

但是仍然不知道为什么Java模块会产生这个错误。如果有人对此有任何想法或见解,请分享。

 类似资料:
  • 问题内容: 我需要在项目中导入Java类。我需要导入的类在具有绝对路径的JAR文件中 现在在我的源文件(Test.java)中 我正在与 它显示了stdlib不存在的错误。 我的导入语句正确还是类路径有问题?此import语句不应该导入JAR文件中存在的所有类吗? 我没有使用任何IDE,我的操作系统是Linux。 问题答案: import语句从jar文件而不是jar文件本身导入类。 形式的导入声明

  • 3.4.2 构建类型 默认情况下,Android plugin 会自动的设置工程,构建 release 和 debug 两个版本。 他们主要的差异主要在于是否可以在设备上调试应用以及APK如何签名。 debug 版本会被使用已知的名称/密码自动生成的密钥/证书签名。release 版本在构建过程中不会被签名,需要构建后再签名。 这些配置可以通过一个叫 BuildType 配置。默认情况下,已经创建

  • 我正在用python3编写Python代码,它导入了几个自定义库。这些库位于文件结构中。当从命令窗口运行代码时,我在导入这些库时没有问题,但是当我在Visual Studio代码中打开文件时,pylint在所有的自定义库导入上给我一个导入错误。 我对这个问题做了很多令人沮丧的研究,发现很多人都有类似的问题。然而,我不能得到任何列出的解决方案的工作,但许多我不理解甚至尝试。我尝试卸载并重新安装VSc

  • 问题内容: 我是Java的新手,但我一直在网上寻找解决方案,但似乎都没有用。请帮我。 我有两个文件。其中之一是包含主要功能的java文件。在里面: 使用该命令,我想创建一个新对象,该对象是一个名为的单独文件中的类。但是Java无法识别VaporVisitor是什么,大概是因为它不知道存在(它在同一目录中)。我试图使它们成为同一程序包的一部分,放入不同的程序包中并导入…,但所有这些都失败了。谁能给我

  • 下面的这些代码可以帮助您通过CSS文件和SCSS文件,创建和编译 CSS 和 JS 文件的source-maps。 安装依赖 为了运行编译和压缩任务,你必须安装 node 和 npm。 命令行 // (Optional) Install Gulp module globally npm install gulp -g // Install fullpage's build dependen