Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android应用程序Java模块(Java 1.8)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Android Project(gradlE)有主要的应用模块:
app – android应用程序(apply plugin:’com.android.application’)
和java模块:
network – (apply plugin:’java’)

java模块网络认具有源代码兼容性1.8,因为lambda表达式,我真的想拥有它.

认情况下Android应用程序1.7我无法构建应用程序.
当然我在我的app – android模块中使用了retrolambda,但项目因为以下原因而无法编译:

错误:com.android.dx.cf.iface.ParseException:错误的类@L_137_6@magic(cafebabE)或版本(0034.0000)

Error:Execution Failed for task ':app:transformClassesWithDexForDebug'.
> com.android.ide.common.process.processException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

如果我创建我的java模块,一切都编译好:

apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7

在这种情况下我不能使用lambda表达式,但我需要它.

我只看到下一个@L_489_10@案:

>使网络模块不是java而是android-module并使用retrolambda
(但是我要从这个模块中制作.jar而不是.aar所以它必须是
JAVA)
>不要在我的java模块中使用lambda表达式(将来会.jar)(但是
我想使用它,因为在rxJava中没有匹配愚蠢的代码
拉姆达)

对我来说最好的@L_489_10@案就是在我的java模块中使用retrolambda.我试过做类似的事情,但retroaR_628_11845@bda依赖(apply plugin:’me.tatarka.retrolambda’)在编译期间没有受到影响.
或者也许使用java 1.7与retrolambda之类的东西.
但gradle文件没有部分android {…}来设置compiLeoptions.

这该怎么做?

最佳答案
根据我为FunctionalIterables所做的,你的gradle文件应该是这样的

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.3'
    }
}

repositories {
    jcenter()
}

apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'

retrolambda {
    jdk System.getenv("JAVA8_HOME")
    oldJdk System.getenv("JAVA7_HOME")
    javaVersion JavaVersion.VERSION_1_6
}

(我的gradle文件的其余部分仅与发布库有关)

Retrolambda可以完成使输出jar定位到正确的java版本所需的一切.

大佬总结

以上是大佬教程为你收集整理的Android应用程序Java模块(Java 1.8)全部内容,希望文章能够帮你解决Android应用程序Java模块(Java 1.8)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。