问题标签 [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.

0 投票
1 回答
547 浏览

android - 错误:任务“:cloudsdk:transformClassesWithRetrolambdaForDebug”执行失败

当我将 android studio 更新到 3.0 后运行现有项目代码时,出现以下错误:

错误:任务 ':cloudsdk:transformiClassesWithRetrolambdaForDebug' 执行失败。> 缺少变体的 javaCompileTask:输出目录中的 debug/0:

0 投票
0 回答
654 浏览

android - java.lang.NoClassDefFoundError:带有 Android API 23 的 lambda

我想在 Android API 23 上使用方法引用并且卡住了。我尝试了 retrolambda 和其他一些方法,但它仍然不起作用。

我正在使用 java 8 并在 sdk 26 (min 23) 上编译。

这是错误

有没有办法使这项工作?

0 投票
1 回答
31 浏览

android - 如何在Android中创建注释代码(作为编译器)的编译时库

我正在尝试创建一个库,例如 retro-lambda,它在编辑时或编译时读取代码并为开发人员提供提示。

假设我正在使用 retro-lambda 库,并且我创建了一个只有一种方法的接口:

当我创建一个实例时:

在这里,retro-lambda 将为开发人员使用 lambda 函数创建一个后盾,如下所示:

关于如何创建检查代码并向用户添加提示的库,我需要了解什么?

0 投票
0 回答
29 浏览

java - 硬配置 Retrolambda

我正在尝试将库 retrolambda 添加到我的项目中。在官方网站上,我们有简短的说明,但不起作用:将一些插件添加到 build.gradle。

之后我从 AndroudStudio 错误中得到:

我的 build.gradle:

有什么问题?我应该在这里解决什么?我在互联网上没有找到帮助。当然我可以删除这个 me.tatarka.retrolambda,但是为什么呢?我们在官方网站上看到这个库“你必须添加它”!

0 投票
0 回答
5423 浏览

java - 如何在 Java 7 中使用 lambda,奇怪的 Retrolambda 不起作用

这很奇怪。在官方文档库retrolambda中,我们可以将其放入自己的gradle中:

但现在当我试图用 lambda 写一些东西时:

我从 AndroidStudio 得到:

当然我可以在我的构建中设置

但这是没有意义的,现在有了 1.8 我不需要 RetroLambda :)

所以问题是如何在 Java 1.7 中使用 lambda?

0 投票
2 回答
49 浏览

android - 如何处理那个gradle错误?

这是我的 app.gradle 文件:

它运行正常,没有任何问题,但是当我将 compileSdkVersion 从 23 更新到 27 并删除 apt 代码行时,它会引发无法解析 AndroidManifest.xml 的错误

0 投票
1 回答
177 浏览

android - 添加 exoplayer 和打开 java 8 的问题

我正在使用领域和 retrolambda,我想将 exoplayer 添加到我的项目中,它需要 java 8 支持,当我添加编译选项 java 8 并重建项目时,我收到此错误:

我创建了一个测试项目并添加了 exoplayer,当我添加编译选项 java 8 时,我也添加了jackoption它,它没有任何问题,但是在我的项目中,我 retrolambda 不允许我添加千斤顶选项,我该怎么办?

0 投票
0 回答
131 浏览

android - 如何解决此错误:android-apt 插件与 Android Gradle 插件不兼容

更新后buildToolsVersion 25.0.3 to 28.0.3build:gradle:2.3.3 to 3.4.0我遇到了这些问题;如何解决这些问题 谢谢

  1. 错误:android-apt插件与 Android Gradle 插件不兼容
  2. 警告:您使用的插件之一支持 Java 8 语言功能。要尝试内置在 Android 插件中的支持,请从 build.gradle 中删除以下内容: apply plugin: 'me.tatarka.retrolambda'
  3. 警告:API'variantOutput.getProcessResources()'已过时并已替换为'variantOutput.getProcessResourcesProvider()'. 它将在 2019 年底被删除。

这是我的代码Bulid.gradle(模块:App)

Bulid.gradle(项目:TestProject)

0 投票
1 回答
335 浏览

android - 无法更新特定项目的 gradle 版本:Android Studio

我正在使用以下版本的 Android Studio:3.5.1

并在应用程序中

和 gradle wrapper 属性是:

现在我想更新项目 gradle。

这里它显示了删除retrolambda的错误,显示了影响项目的lambda方法的compileOptions remove。

每当我尝试更新 gradle 版本时,只有 3.0.0 没有任何其他项目 ext 更新它向我显示绑定错误 BR。

在此处输入图像描述

请检查 gradle 中的所有依赖项。

我收到如下错误:错误:com.android.databinding.library.baseAdapters 包不存在错误:找不到符号类 BR

0 投票
0 回答
25 浏览

java - 我可以避免 retrolambdas 捕获对封闭类的引用吗?

我通过让我的表单实现来实现历史reconstructor,这是一种返回 lambda 的方法。它可以很简单

或更复杂的,例如,

没有一个 lambdas 需要访问封闭的实例。这很重要,因为它允许对表单进行垃圾收集。

然而,使用retrolambdas,它们被转换为一个内部类,正如我被告知的那样,它们用作this对其周围类的引用,因此它们像非静态内部类一样引用其父级。

这是不必要的,IIUIC,retrolambda可以做到这一点

Lambda 表达式通过将它们转换为匿名内部类来反向移植。这包括对无状态 lambda 表达式使用单例实例的优化,以避免重复的对象分配。

显然,我的第一个片段中的 lambda 是无状态的,尽管如此,它被转换为具有类型实例变量的类MyForm1。缺少上述优化。

我的第二个片段中的 lambda 有两个实例变量,不需要对封闭类的引用,因此它可以转换为嵌套类,如

有机会解决这个问题吗?