问题标签 [retrolambda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在android studio 1.0中出现retrolambda错误
我在 android studio 1.0 工作
gradle 文件显示此错误:
任务“:app:compileRetroLambdaDebug”执行失败
// 顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。
我还必须在 gradle 文件中进行哪些更改。请提出一些建议...
java - 编译时的 java.lang.NoSuchMethodError
我正在尝试编译一个 Android 项目,但没有成功。错误信息是:
任务 ':mobile:_compileAppDebug' 执行失败。
java.lang.NoSuchMethodError: com.google.auto.common.MoreTypes.asTypeElements(Ljavax/lang/model/util/Types;Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableSet;
这是我的模块的 gradle 依赖项,我在其中指定了许多库,包括 google Auto:
当我查看依赖项时,我认为我只需要 google auto 值,因为这是缺少的方法所在的位置,但添加提供的方法并不能解决问题。
项目 gradle 文件包含 retrolambda 插件
谁能帮我确定哪些依赖项导致编译错误?有趣的是,当我将 gradle 文件复制到一个空项目中时,一切都运行良好。
lambda - Java8 lambda 是否像匿名类一样维护对其封闭实例的引用?
我们知道匿名类维护对其封闭实例的引用,这可能导致 Android 上的上下文泄漏。
由于retrolambda将 lambda 向后移植到 Java7,因此值得一试。
似乎Java8 lambdas没有这个问题,但我找不到任何官方信息。
有什么线索吗?
android - Retrolambda:使用带有 retrolambda 的 lambda 表达式时,Lint 崩溃
我正在尝试将retrolambda与gradle-retrolambda插件一起使用。一般来说它工作正常,但是当我编译发布时,lint
阶段失败并出现异常:
有什么可做的吗?当然,一个简单的工作/解决方法是禁用lint
检查释放。但我正在寻找解决方案,允许保留lint
.
以下是应用程序的模块build.gradle
:
根build.gradle
:
android - 使用 RxJava 和 Retrofit 遍历列表并根据子查询增加结果
我正在使用改造,我觉得 rxjava(带有 retrolambda)将非常适合以下流程:
- 获取小部件列表 (http)
对于每个小部件
a) 获取给定小部件类型的文章列表 (http)
b) 将所有这些保存到数据库
c) 获取列表中的第一篇(最新)文章并使用本文中的适当值更新 widget.articleName 和 widget.articleUrl- 转换回列表并完成
但是我不确定在步骤 2a 之后该怎么做。到目前为止,这是我的代码
我玩过一些操作符,但是在链接时,我似乎总是把范围缩小得太远(例如,获得一篇文章的句柄),然后不再能够访问原始小部件来进行修改。
android - Maven:在使用 retrolambda-maven-plugin 和 DEX-ed 与 android-maven-plugin 检测的应用程序中使用 Java 8 库
我编写了一小部分供我内部使用的小型库。这是使用 Maven 构建的。这些库针对“常规”Java、GWT 和 Android。其中一些是用 Java 8 编写的,因为我无意在 GWT 或 Android 上运行它们,因此其他库是用旧的 Java 6 编写的以支持这两个。我有一个将我的库完全迁移到 Java 8(就语言特性而言)的计划,并且我成功地在尚未发布的 GWT 2.8.0 上运行了 Java 8 重写的库。但是,我不能让 Java 8 重写的库为 Android 应用程序编译。问题是 Retrolambda(retrolambda-maven-plugin
插件)似乎只能处理当前的 Maven 模块类,并完全忽略依赖类。因此,android-maven-plugin
目标应用程序构建的中断:
配置retrolambda-maven-plugin
如下:
是否可以配置 Retrolambda 插件来处理库类以及所有依赖项?或者也许我可以使用另一个字节码处理工具?
更新#1
我认为我对 Retrolambda 失败的看法是错误的。再深入研究一下,我发现这android-maven-plugin
可能是罪魁祸首,因为它直接从 Maven 存储库中选择未检测的 JAR 文件,而不是从target
目录中。启用详细日志记录发现了由以下命令调用的伪代码命令android-maven-plugin
:
我的想法是执行maven-dependency-plugin
插件以将这三个工件获取到$BUILD_DIRECTORY/classes
目录中,以使retrolambda-maven-plugin
仪器具有依赖关系。比方说:
步骤 1:将依赖项复制到目标目录
第 2 步:使用 Retrolambda 检测复制的依赖项
调用retrolambda-maven-plugin
第 3 步:编译 DEX 文件
调用android-maven-plugin
排除复制到目标目录的依赖项,因为它们都应该位于目标目录中
但这也失败了,因为我找不到一种方法来排除工件与android-maven-plugin
.
如何禁止从以非检测状态存储它们的存储库中获取工件?
我的插件配置:
- org.apache.maven.plugins:maven-dependency-plugin:2.10
- net.orfjackal.retrolambda:retrolambda-maven-plugin:2.0.2
- com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.9.0-rc.3
更新#2
Simpligility 团队发布了 Android Maven 插件 4.4.1,具有以下描述的场景。在插件更改日志中查看更多信息。
示例场景可以在http://simpligility.github.io/android-maven-plugin/instrumentation.html找到
android - 在詹金斯上使用 Retrolambda 的 gradle 构建失败
jenkins 上的 android 构建失败,而在本地成功运行,下面是构建输出:
java - Travis CI 上的 Retrolambda
我的 travis.yml 文件:
app:compileRetrolambdaDebug
它在错误消息期间失败Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 1
。
是否可以在 Travis CI 上运行 Retrolambda?
添加 --debug 参数后,我得到以下信息:
这里也报了类似的错误,可能是 Gradle-retrolambda 插件问题。
java - 没有得到 BehaviourSubject
我已经做了很多 android,但对 java 8 来说是新手。我做了一个 BehaviourSubject< Map< String,String>>。
我在上面放了一个可观察的。在演示者类中,我将 BehaviourSbuject 设置为可观察的,并且一旦进行 onClick,onNext 就会调用它。但它正在抛出 rx.exceptions.OnErrorNotImplementedException。
我不明白为什么它会抛出这个错误,因为我已经参考了这个http://reactivex.io/RxJava/javadoc/index.html?rx/exceptions/OnErrorNotImplementedException.html但据此我只在 onNext 调用可观察到仍然出现此错误。
MainScreenView 是一个由 MainScreenFragment 实现的接口。
演示者类
MainScreenFragment 类
错误
提前致谢
maven - Retrolambda on Google App Engine
Is anyone using Retrolambda for a Google App Engine project? What does your pom.xml look like?
It's straightforward to compile for JDK8 and set up retrolambda's maven plugin. However, to deploy to GAE, Google's appengine-maven-plugin needs to be run under JDK7 otherwise it will compile JSP files into a format that breaks in production.
How can I use JDK8+retrolambda for compilation, but JDK7 for appengine:update?