- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试设置 Travis CI,以便它在运行 API 25 的模拟器上运行仪器测试。Travis 在 API 4/10/19 上运行测试直至完成,但无法启动 API 25 的模拟器,如下所示留言:
$ echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
Valid ABIs: no ABIs.
Error: Invalid --abi armeabi-v7a for the selected target.
android list targets
的输出显示 API 19 模拟器有标签/ABI,而 API 25 模拟器没有:
id: 7 or "android-19"
Name: Android 4.4.2
Type: Platform
API level: 19
Revision: 4
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : default/armeabi-v7a
id: 11 or "android-25"
Name: Android 7.1.1
Type: Platform
API level: 25
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
如何解决此问题,以便 API 25 模拟器启动并运行测试?
完整的.travis.yml
文件如下:
language: android
android:
components:
- tools
- platform-tools
- tools # appears twice as per Travis docs
- build-tools-23.0.1
- build-tools-25.0.2
- android-4
- android-10
- android-19
- android-23
- android-25
- extra-android-m2repository
- sys-img-armeabi-v7a-android-25
env:
matrix:
- ANDROID_TARGET=android-4 ANDROID_ABI=armeabi
- ANDROID_TARGET=android-10 ANDROID_ABI=armeabi
- ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a
- ANDROID_TARGET=android-25 ANDROID_ABI=armeabi-v7a
before_script:
# Create and start emulator
- android list targets
- jdk_switcher use oraclejdk8
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
- adb wait-for-device
- while [[ `adb shell pm path android` == 'Error'* ]]; do sleep 2; done
- adb shell input keyevent 82 &
script: ./gradlew --info connectedAndroidTest
sudo: false
最佳答案
注意:模拟器版本 26.1.4+ 版本可以引入或修复错误。如果需要可重现的 ci 构建,最好的选择是通过 android 组件下载所需的 sdk-tools 版本号。
注意:模拟器版本 26.1.3 是 here包括有趣的修复。我现在正忙着修改我的答案:
使用模拟器 26.1.2 的相关问题 here .重新启动上次构建 like me使用 26.1.3 并祈祷,绿色
I am attempting to setup Travis CI so that it runs instrumentation tests on an emulator running API 25. Travis runs the tests to completion on API 4/10/19, but fails to startup the emulator for API 25...
How can I fix this so that the API 25 emulator launches and runs the tests?
更新:我确认 Android Studio 中也缺少用于 API 23、25 和 26 的 ARM ABI,因此:
这不是 Travis-ci 问题。我在本地复制了它,如下图所示。
您可以将 ARM ABI 用于 API-24。我 fork 了你的项目,它在构建 #6 中工作(下一张图片)。
您可以将 Google API 图像用于 API-25,正如我在下面使用新的 sdkmanager
所解释的那样:1
我们需要向 Google 或其他人询问为什么缺少这些 API 的 ARM ABI。
更新: A related bug已经报告给谷歌并讨论了here , 请加注星标:
For some reason it's marked as being only available on windows. I'm not sure if this is a problem with ADRT itself or the configuration for this package, but from a quick look it seems like it's probably a problem with adrt itself.
我不确定 api-25 问题是否相关,但我希望它能结合多种解决方案:
google_apis
结合使用以简化构建矩阵并避免遗漏 ABI。sdkmanager
和 avdmanager
。dist: precise
作为解释 here .请参阅下面的链接,了解使用包含 Api-25 模拟器的构建矩阵的工作示例。
我在 macbook 上通过 Android Studio 更新了 api 23 系统镜像一次,并出现一条关于我的计算机不支持新版本的消息,所以我使用了 google_apis。
我为 issue 提供了一个可能的解决方案Ashish Pathak 评论(我也是 ardock)here .
我需要更新我的回复以支持新 SDK 工具附带的新 Travis-ci 图像。
新的预装 Sdk 工具将简化解决方案并减小 YAML 文件的大小。
如公告in this blog post作者:Carmen Andoh 和 Dominic Jodoin,2017 年 6 月 19 日:
Updates are coming to all Ubuntu Trusty 14.04 images
This new generation of Trusty images is already available in production and can be used by adding group: edge in your .travis.yml file:
sudo: required
dist: trusty
group: edge # Add this
正如解释的那样here :
As a bit more information, this new Android image comes with:
Android SDK 25.2.3 build-tools-25.0.2
The new sdkmanager tool - a command line tool that allows you to view, install, update, and uninstall packages for the Android SDK. Replaces the previous android tool, see https://developer.android.com/studio/tools/help/android.html
Also, the new Android image should be retro-compatible. See the full list of Android SDK components that can be specified in the .travis.yml file, including build-tools-26.0.0-preview.
但他们没有使用新的 avdmanager,我将在本周末尝试修复它。
或者,您可以通过添加 dist: precise
来使用以前的图像。
以下几行是 my answer on a related question: 的一部分在图像更新之前:
Full working sample using constraint-layout codelab repository for Android API level 22 to 25:
另外两个使用 sdkmanager
和 avdmanager
的示例:
引用资料
与Auto-download missing packages with Gradle相关的官方文档
new Emulator Start the Emulator from the Command Line 中解释了选项
avdmanager
explained here自 SDK tools version 25.3.0 以来替换 android avd
sdkmanager
explained here还增强了从命令行查看和接受所有许可证
关于java - 如何使用 Travis CI 上的构建矩阵设置运行 API 25 的模拟器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45100298/
假设我有两个矩阵,每个矩阵有两列和不同的行数。我想检查并查看一个矩阵的哪些对在另一个矩阵中。如果这些是一维的,我通常只会做 a %in% x得到我的结果。 match似乎只适用于向量。 > a
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 个月前。 Improv
我只处理过 DirectX 矩阵 我读过一些文章,说不能将 DirectX 矩阵数学库用于 openGL 矩阵。 但我也读过,如果你的数学是一致的,你可以获得类似的结果。那只会让我更加困惑。 任何人都
我编写了一个C++代码来解决线性系统A.x = b,其中A是一个对称矩阵,方法是首先使用LAPACK(E)对角矩阵A = V.D.V^T(因为以后需要特征值),然后求解x = A^-1.b = V^T
我遇到了问题。我想创建二维数组 rows=3 cols=2我的代码如下 int **ptr; int row=3; int col=2; ptr=new int *[col]; for (int i=
我有一个 3d mxnxt 矩阵,我希望能够提取 t 2d nxm 矩阵。在我的例子中,我有一个 1024x1024x10 矩阵,我想要 10 张图像显示给我。 这不是 reshape ,我每次只需要
我在 MATLAB 中有一个 3d 矩阵 (n-by-m-by-t) 表示一段时间内网格中的 n-by-m 测量值.我想要一个二维矩阵,其中空间信息消失了,只剩下 n*m 随着时间 t 的测量值(即:
作为一个简化的示例,我有一个 3D numpy 矩阵,如下所示: a = np.array([[[1,2], [4,np.nan], [7,
作为一个简化的示例,我有一个 3D numpy 矩阵,如下所示: a = np.array([[[1,2], [4,np.nan], [7,
使用 eigen2 , 并给定一个矩阵 A a_0_0, a_0_1, a_0_2, ... a_1_0, a_1_0, a_1_2, ... ... 和一个矩阵B: b_0_0, b_0_1, b_
我想知道如何获得下面的布局。 在中型和大型设备上,我希望有 2 行和 2 列的布局(2 x 2 矩阵)。 在小型(和超小型)设备上或调整为小型设备时,我想要一个 4 行和 1 列的矩阵。 我将通过 a
有什么方法可以向量化以下内容: for i = 1:6 te = k(:,:,:,i).*(c(i)); end 我正在尝试将 4D 矩阵 k 乘以向量 c,方法是将其
如何从填充有 1 和 0 的矩阵中抽取 n 个随机点的样本? a=rep(0:1,5) b=rep(0,10) c=rep(1,10) dataset=matrix(cbind(a,b,c),nrow
我正在尝试创建一个包含 X 个 X 的矩阵。以下代码生成从左上角到右下角的 X 对 Angular 线,而不是从右上角到左下角的 X 对 Angular 线。我不确定从哪里开始。是否应该使用新变量创建
我想在 python 中创建一个每行三列的矩阵,并能够通过任何一行对它们进行索引。矩阵中的每个值都是唯一的。 据我所知,我可以设置如下矩阵: matrix = [["username", "name"
我有点迷茫 我创建了一个名为 person 的类,它具有 age 和 name 属性(以及 get set 方法)。然后在另一个类中,我想创建一个 persons 数组,其中每个人都有不同的年龄和姓名
我有 n 个类,它们要么堆叠,要么不堆叠。所有这些类都扩展了同一个类 (CellObject)。我知道更多类将添加到此列表中,我想创建一种易于在一个地方操纵“可堆叠性”的方法。 我正在考虑创建一个矩阵
我有一个包含 x 个字符串名称及其关联 ID 的文件。本质上是两列数据。 我想要的是一个格式为 x x x 的相关样式表(将相关数据同时作为 x 轴和 y 轴),但我想要 fuzzywuzzy 库的函
机器学习与传统编程的一个重要区别在于机器学习比传统编程涉及了更多的数学知识。不过,随着机器学习的飞速发展,各种框架应运而生,在数据分析等应用中使用机器学习时,使用现成的库和框架成为常态,似乎越来越不需
当我在 julia 中输入这个错误跳转但我不知道为什么,它应该工作。/ julia> A = [1 2 3 4; 5 6 7 8; 1 2 3 4; 5 6 7 8] 4×4 Array{Int64,
我是一名优秀的程序员,十分优秀!