问题标签 [android-jack-and-jill]

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 投票
0 回答
222 浏览

android - 当 Gradle 运行 transformClasses 时,Android 构建在 Ubuntu Docker 容器中失败

我的 Android 项目在具有大量 RAM 的 Windows 开发机器上构建良好。但是在一个简单的 Docker 容器(来自 ubuntu:xenial + Android SDK)中,gradle build(./gradlew assembleTrunkDebug)在执行任务时失败了 58%:

即使使用 --stacktrace --debug ,我从错误中得到的最多是:

我注意到了一些奇怪的事情:我传递给 docker 容器实例化的内存参数并不重要。它总是向我显示相同的内存统计信息。

我通常在做类似的事情:

但我也尝试传递更少的内存和相同的内存交换或更多的总内存,但它总是显示 Mem:1019776 和 Swap:1168688。

我还在任务管理器中注意到 VBoxHeadless.exe 仅使用 41MB 的 RAM。虽然不幸的任务正在运行(在崩溃之前需要很长时间),但 RAM 使用量不会改变,但磁盘传输量很大并且只会消耗越来越多(因为它在 SSD 驱动器上)。

Android 建议必须允许用于最新 sdks 的新构建工具 Jack 和 Jill 至少使用 1536m 内存。但是 Docker 映像应该以最大 2048m 的速度运行,并且考虑到我无法缩小交换空间,我感觉那里出了点问题。

那么有什么想法可能导致这种一致的错误吗?

0 投票
6 回答
12290 浏览

java - 添加 java8 支持时出现 Android Studio 错误

我的 Android Studio 或我的配置有什么问题?

这是我的 build.gradle

我猜我的开发环境中没有启用插孔,如何找出错误并修复它?我已经安装了jdk1.8

0 投票
1 回答
1255 浏览

android - 使用 jack 时,Lambda 表达式在 Android 中因 IncompatibleClassChangeError 而崩溃

我在我的 Android 项目中使用 Java 8。我已经设置了 Jack(在 android 应用程序模块中)和 Retrolambda(在其他模块中)。

我遇到的问题是,当我尝试使其使用类变量(并且我可以在任何模块中重现它)时,我的 Lambda 表达式在一个特定场景中崩溃,在所有其他情况下它按预期工作。也许这是一种标准的 Java 行为,但到目前为止我找不到任何解释。有谁知道问题出在哪里?我的班级和崩溃如下:

崩溃日志:

0 投票
0 回答
119 浏览

android-gradle-plugin - 使用 Jack for Java 8 构建 Android gradle 失败“导入类型”

构建失败,TypeImportConflictException 引发 LibraryReadingException。

错误日志如下: http: //pastebin.com/fZA643Tq

我注意到除了例外情况外,还会出现以下消息:请参阅属性“jack.import.type.policy”了解类型冲突策略

我已经搜索了如何使用此属性,但一无所获。此外,jack ( http://tools.android.com/tech-docs/jackandjill ) 的官方文档也无济于事。

0 投票
3 回答
2905 浏览

java - 启用插孔的 Android Studio 构建错误

所以我最近将我的 Android Studio 默认 JDK 切换到了 Java 8,所以我可以使用 Lambda 表达式。我必须让 Jack 让 gradle 构建,但现在当我尝试重建我的应用程序时,我收到了大约 3 个似乎来自 Jack 的不同错误。我似乎找不到任何这些问题的根源,并希望继续使用 J8 进行构建。非常感谢您对此的任何见解或帮助。以下是我在构建过程中遇到的错误:

1)

错误:库读取阶段:从文件'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax.inject-2.4.0-b10-e2682135301b663484690f1d3a4a523bcea2a732 中键入 javax.inject.Named。 jar' 已经从文件 'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax.inject-1-4a242883e90a864db3b80da68e11a844f842d2df.jar' 导入,输入 'javax.inject.Named '(有关类型冲突策略,请参见属性 'jack.import.type.policy')

2)

错误:com.android.jack.JackAbortException:库读取阶段:类型 javax.inject.Named 从文件 'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax.inject- 2.4.0-b10-e2682135301b663484690f1d3a4a523bcea2a732.jar' 已经从文件 'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax.inject-1-4a242883e90a864db4f842dedf1864db3b842d ,输入“javax.inject.Named”(请参阅​​属性“jack.import.type.policy”了解类型冲突策略)

3)

错误:com.android.jack.backend.jayce.TypeImportConflictException:类型 javax.inject.Named 从文件 'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax.inject- 2.4.0-b10-e2682135301b663484690f1d3a4a523bcea2a732.jar' 已经从文件'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax.inject-1-4a242883e90a864db4f842dedf1864db4f842d ,输入“javax.inject.Named”(请参阅​​属性“jack.import.type.policy”了解类型冲突策略)

4)

:app:compileDebugJavaWithJack FAILED 错误:任务 ':app:compileDebugJavaWithJack' 执行失败。java.io.IOException:com.android.jack.api.v01.CompilationException:库读取阶段:从文件“C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\ 中键入 javax.inject.Named debug\packaged\javax.inject-2.4.0-b10-e2682135301b663484690f1d3a4a523bcea2a732.jar' 已经从文件'C:\Users\nicholas\AndroidStudioProjects\BaseIntegrations\app\build\intermediates\jill\debug\packaged\javax 导入。 inject-1-4a242883e90a864db3b80da68e11a844f842d2df.jar',输入“javax.inject.Named”(有关类型冲突策略,请参见属性“jack.import.type.policy”)

这是应用程序级别的 build.gradle:

非常感谢所有帮助,因为我知道这是一个新事物,但似乎无法找到有关 Jack/J8 构建过程的问题。提前致谢。

0 投票
1 回答
527 浏览

android - android-apt & 杰克和吉尔

安卓工作室 2.2

Gradle Android 工具 2.2.0

Gradle Wrapper 2.14.1-all

我正在使用 apt 插件来编译 ButterKnife(版本 8.2.1)库,并且我想使用带有 jack 和 jill 支持的 lambda。

安卓 apt 插件

android apt类路径

如果我试图启用千斤顶工具链

jack 和 apt 一起给出以下错误:

如果我要删除 android-apt 插件,jack 工具链效果很好。那么,我们应该怎么做才能将它们一起使用呢?

0 投票
0 回答
599 浏览

android-gradle-plugin - 如何将“eventBusIndex”参数传递给 EventBus 注释处理器

我刚刚开始使用新的Android Jack 编译器并使用 Greenrobot Eventbus
经过一些反复试验后,我让它工作了,但它似乎只有在我eventBusIndex在 2 个地方指定参数时才有效 - 请参见下面的代码:

0 投票
3 回答
2127 浏览

java - Android Studio 2.2 和 Jack 被 Avira Antivirus 阻止

因此,我更新了我的项目以使用新的 jack 编译器,但由于某种未知原因,我的 AntiVir 阻止了该任务transformClassesWithPreJackPackagedLibrariesForDebug ,如果我禁用 AntiVir 实时保护,它就可以工作。我真的不想这样做,也不想开始将我的 android 项目放在例外列表中。
我正在使用 Android Studio 2.2,这是我的build.gradle

我的project.gradle

当我尝试在我的硬件设备上运行应用程序时出现错误。

0 投票
2 回答
2181 浏览

android - 杰克编译永远

在升级我的项目以启用 Jack 和 Java8 功能后,我的 16gb macbook 似乎无法再构建我的项目了。我看到内存使用率越来越高,但进程总是卡在同一点。

我的 Gradle 控制台:

我的构建:

gradle.properties:

在使用 Jack 之前,编译器将在不到 20 秒左右的时间内构建,可能有什么问题?谢谢

0 投票
0 回答
215 浏览

android - 使用 Java 8 编译安卓应用程序

我的应用程序还没有迁移到 gradle,我们仍然使用 Ant 构建脚本。最近,我们的一个依赖库开始使用 Java 8 特性。

为了使用 Java-8 lib 进行编译,将 ant 脚本配置为使用 java 1.8。通过此更改,编译成功,但在 dex 阶段失败。

使用 20.x 构建工具,我得到了

“Bad Class File Magic (cafebabe)”错误。

使用 24.x 构建工具,我得到了

“[dex] 解析错误:不支持的类文件版本 52.0”

似乎摆脱了 dex 错误,我需要使用 jack 工具链,但是如前所述,我没有使用 Gradle 构建。

有没有办法将 dex 与 java-8 代码一起使用?还是杰克工具是唯一的解决方案?