- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 android gradle 插件2.2.0
:
buildscript {
repositories {
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "com.android.tools.build:gradle:2.2.0"
}
}
并运行./gradlew assembleDebug assembleDebugAndroidTest
:
2.2.0
:
app-debug.apk
app-debug-androidTest.apk
2.1.3
:
app-debug.apk
app-debug-unaligned.apk
app-debug-androidTest.apk
app-debug-androidTest-unaligned.apk
基于这个谷歌问题:https://code.google.com/p/android/issues/detail?id=212591并在这里发表评论:https://code.google.com/p/android/issues/detail?id=212591#c15 :
Hi, we don't generate unaligned apks any more. As part of the improvements to speed things, we generate the apk already aligned. So, instead of two, you just get the final one.
Spoon 需要这些“未对齐”的 apk 来运行它的测试运行器:
java -jar spoon-runner-1.7.0-jar-with-dependencies.jar \
--debug --fail-on-failure --adb-timeout 90 --no-animations \
--apk app-debug.apk \
--test-apk app-debug-androidTest-unaligned.apk
错误:
12:06:48 I/InstrumentationResultParser: test run failed: 'Instrumentation run failed due to 'java.lang.NoClassDefFoundError''
2016-09-23 12:06:48 [STRL.testRunStarted] testCount=0 runName=<>.test
2016-09-23 12:06:48 [STRL.testRunFailed] errorMessage=Instrumentation run failed due to 'java.lang.NoClassDefFoundError'
2016-09-23 12:06:48 [STRL.testRunEnded] elapsedTime=0
12:06:48 I/XmlResultReporter: XML test result file generated at /<>/spoon-output/junit-reports/emulator-5554.xml. Total tests 0,
看起来 Spoon 只接受“未对齐”。
Exception in thread "main" java.lang.IllegalArgumentException: Instrumentation APK path does not exist.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
at com.squareup.spoon.SpoonRunner$Builder.setInstrumentationApk(SpoonRunner.java:360)
at com.squareup.spoon.SpoonRunner.main(SpoonRunner.java:657)
最佳答案
在 2.2 之前,gradle 插件会生成一个未对齐的 apk,然后运行 zipalign 来对齐它。因此,生成了两个 apk,一个带有“-unaligned”,另一个没有任何特定标记对齐。
在 2.2 中,与此相关的构建管道有很多改进:
这两个中的最后一个在 APK 中启用 V2 签名 ( https://source.android.com/security/apksigning/v2.html ):完整的 APK 签名可以抵抗 APK 中的任何更改(并且验证速度更快)。这意味着 zipalign 无法再在启用了这些签名的 APK 上运行。
因此,简而言之,从 2.2 打包开始速度更快、增量并且不会生成不必要的未对齐 APK。
关于android - 没有使用 gradle 插件 2.2.0 生成 "unaligned"apk,破坏了 Spoon runner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39667882/
我正在 Maven 中运行 Spoon 启动器,但它没有找到处理器类路径。 Maven 调试语句: DEBUG spoon.Launcher - template classpath: [] INFO
我想使用 PDI spoon 获取 mongodb 中的最大 id。 我的集合中有这些字段: 身份证号码 流派字符串 在我插入新记录之前,我应该获得最大 Id。 你能帮我看看如何获取最大 Id 吗
我一直在尝试根据特定字段的值将 pentaho 转换的结果拆分为多个文件,但没有任何运气。 例如。包含以下内容的结果集: 姓氏、名字、国家 奥巴马, 巴拉克, 美国 卡梅伦,大卫,英国 布莱尔,托尼,
我从 sourceforge link 下载了 Pentaho Data Integration(或 Kettle)到我的 Windows 10 机器上在 Pentaho Community webs
pentaho 文档 ( http://wiki.pentaho.com/display/EAI/Job+checkpoints+and+restartability ) 指定,从版本 5.0 开始,
我在使用 javascript 步骤转换时遇到问题。 我只有三个步骤: 1- 数据网格(带有数据集) 输入: Col_1 | Col_2 | Col_3 a b c d
我正在尝试将 Java 代码的 Spoon 表示 转换为其他内容;假设是 JSON 或 XML 表示形式或其他 Java 模型。 我不知道如何以及从哪里开始。 我是否必须为 Spoon 的每个叶子编写
我有一份工作,其源连接为 Windows 上的 oracle。 在目标上,它应该通过 ssh 更新 ubuntu Linux 服务器上的 mysql 数据库表。 这可以做到吗? 在插入/更新步骤中是否
我一直在开发一种在方法内部注入(inject)内部类的处理器,但我在弄清楚如何生成类和伴随的对象初始化而不自动生成不正确的完全限定名称时遇到了很多麻烦。 例如,我一直在处理以下内容:我一直在制作一个新
我正在尝试对 Spoon source 进行更改(试图了解它是如何工作的)但无法弄清楚如何构建我们可以用来独立运行的最终 jar(具有类似于 the site 提供的依赖项)。 我尝试运行 ./gra
我正在使用 inria Spoon解析 Java 项目,然后提取有关类、接口(interface)、字段和方法及其所有引用的信息。 我正在使用以下代码构建输入项目的模型。 SpoonAPI spoon
我正在使用水壶勺进行改造。 如何从“获取系统信息”给出固定输入日期?我看到选择昨天、一个月前等选项。但我想手动选择固定日期,例如:'2012-12-14' 我从转换中得到了一个 csv,“文本文件输出
如果有人使用 SPOON API,您能给我一些如何创建调用图以及我需要做什么的线索吗? 我认为我需要创建一些像这样的处理器: public class InvocationProcessor exte
我想使用 script构建直方图。对你起作用吗?它对我不起作用。也许我做错了什么?我在浏览器书签中添加了 javascript 行: javascript:$.getScript('https://c
我正在尝试使用SPOON在android中编写注释处理器. 所以我的问题是当我编写注释处理器类时,如何向编译器指示它。 假设我的类位于 com.craftman.spoonprocessor.Cust
我有一个如下所述的 SQL 查询,这将每天更新数据库比较日期(最新附加的日期数据将在数据库中更新),我想使用 Pentaho 数据集成(Kettle)在转换中执行此操作。 Do While i =13
我运行我的 Espresso通过 Spoon 测试.通常,我会得到一个 build successful,但测试没有执行。我认为原因是没有对相关应用程序的代码进行任何更改。我明白他们为什么要这样做——
我有一个场景,我有两个独立的数据库olap和oltp,在输入表或脚本(mysql)中我想连接这两个不同的表数据库。 创建连接时无法将数据库列留空,因此无法访问数据库(和连接表)。 答案中建议的一个解决
我在查找文档时遇到问题,我该如何解决这个问题。 我能够启动小型/中型/大型测试: ./gradlew spoonSmall ./gradlew spoonMedium ./gradlew spoonL
我想知道如何停用登录Spoon (用于分析和转换Java源代码的库)? 例如,我想禁用调试日志消息。但是,我不知道如何将日志设置为Info(log.setLevel(Level.INFO);) 最佳答
我是一名优秀的程序员,十分优秀!