关注互联网应用及运维技术的个人博客

android编译时出现java.lang.RuntimeException

执行 gradle assembleRelease 或者点击 run 时,跑不起来

详细错误日志:

error processing C:\Users\user68\.gradle\caches\transforms-2\files-2.1\421b53cccffea597abe076395f5d00de\jetified-gson-2.8.6.jar
java.lang.RuntimeException
        at org.objectweb.asm.ClassVisitor.visitModule(ClassVisitor.java:148)
        at org.objectweb.asm.ClassReader.readModule(ClassReader.java:731)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:632)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyze(DesugaringClassAnalyzer.java:144)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyzeJar(DesugaringClassAnalyzer.java:92)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyze(DesugaringClassAnalyzer.java:63)
        at com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.lambda$getInitalGraphData$4(DesugarIncrementalTransformHelper.java:150)
        at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
 
> Task :proj.android:transformClassesWithDexBuilderForRelease FAILED
java.lang.RuntimeException: java.lang.RuntimeException

当使用 gson 2.8.6 出现这种情况,是因为 com.android.tools.build:gradle 版本过低

在项目根目录的 build.gradle 文件里

buildscript{   
 ........    
 dependencies { 
         classpath 'com.android.tools.build:gradle:3.2.1'    
} }

提高版本 gradle 版本号到 3.5.3 以上

升级后便能成功编译了

如果要求编辑 gradle-wrapper.properties 文件,则在项目根目录的 gradle/wrapper/gradle-wrapper.properties 中,修改 distributionUrl 为:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

如果公司内部采用的服务器打包,那么打包服务器上的 gradle 也需要进行升级,否则会打包失败

指定使用 java 1.8 版本

在 app 工程的 build.gradle 文件中添加 compileOptions

android{    ......     compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }} 
赞(0)
未经允许不得转载:飞天狒狒 » android编译时出现java.lang.RuntimeException

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址