问题标签 [android-build]

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 投票
2 回答
3537 浏览

build - 使用 gnustl_static 构建外部模块时找不到 libstdc++

我正在将 gnustl_static 添加到外部 Android 模块,并且在构建它时出现以下错误。

当我查看“prebuilt/ndk/android-ndk-r7/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/”时,我找不到 libstdc++.a 有一个 fild libsupc++.a

构建系统正在从它声明的“build/core”文件夹中的 binary.mk 文件中获取它

问题是我不知道如何克服这个错误。

预建文件夹中有许多 libstdc++ 副本,但在列出的位置中找不到它们。发现于

这是我的 Android.mk 文件的缩写形式:

任何人都知道如何解决“无规则制定目标”构建问题?

0 投票
3 回答
15684 浏览

android - 在 Android 源代码中添加预构建的二进制文件

我有一个本机二进制文件,我想将它包含到 Android 的源代码中,这样当我编译它时,我的二进制文件就会包含在 /system/bin 中。

我已将二进制文件复制到文件夹 /prebuilt/android-arm/my-binary 中,并创建了一个新的 Android.mk,其中包含以下内容:

但是当我运行make时,我在日志中得到的唯一参考如下:

并且二进制文件根本没有安装到 system.img 中。在 Android 上安装预构建的二进制文件中有一个几乎相同的问题:“未找到” ,但提问者已经知道基本过程,根本没有解释。如果我运行make my-binary,我会得到我发布的同一行。

我也尝试运行make out/target/product/generic/system.img my-binary但它也不起作用。我的二进制文件显示在out子文件夹中,但不会包含在 system.imng 中

我错过了什么吗?有什么办法可以让只运行make -j#我的二进制文件包含在 /system/bin 中?

0 投票
1 回答
120 浏览

android - 在填充库之前计算的android库?

这是一个奇怪的。我有一个-pre-compile目标custom_rules.xml。在这里,一些 JAR 被复制到libs文件夹中。

如果我进行干净的构建,它会在运行时失败,因为这些库没有包含在 .apk 中。查看 的输出ant -v ...,Dx 没有处理这些库。因此,在针对这些库编译项目时,它们不包含在 Dx 阶段。

如果我随后做了一个 non-clean ant debug,一切都很好,因为复制的 JAR-pre-compile在构建开始时就已经存在了。

任何想法我做错了什么?

0 投票
1 回答
126 浏览

android - 在android中的构建时从生产构建中过滤语言环境

是否有记录的方式可以在构建 android 应用程序时过滤掉支持的语言环境?例如,如果我有一个仅部分构建支持的语言环境,我想将其包含在调试构建中,但将其从我的发布构建中排除,是否有我可以使用的配置设置来实现这一点?

0 投票
1 回答
2358 浏览

android - Android Tools r20 不会使用 ant 构建带有库项目的项目,说我在库中缺少 project.properties 但我没有

几个月来我一直在使用 ant 构建我的项目,直到昨天刚刚发布的 r20 之前没有任何问题。我基本上只是使用默认构建文件提供的钩子来做一些小改动。我的项目正在使用 2 个库项目,并且在 eclipse 中构建工作正常。但是我使用 ant 进行官方签名构建(我的目标是创建构建,我的应用程序将连接到生产、登台或 qa 环境)。这是我收到的错误消息:

构建失败/Users/mwolfe/workspace/android-flex/app/build.xml:99:执行此行时发生以下错误:/Users/mwolfe/lib/android-sdk/tools/ant/build.xml:476 : ../shared/SomeSdk/sdk 解析为项目/Users/mwolfe/workspace/android-flex/shared/SomeSdk/sdk 没有project.properties 文件的路径

但是我确信这个文件夹中有一个 project.properties 文件,并且之前工作正常。查看 android 的 build.xml 中的第 476 行,它有:

任何想法是什么导致了这个以及如何解决它?

0 投票
0 回答
114 浏览

java - 导出库复选框对独立项目有什么影响?

我的印象是 Eclipse 的项目属性“订单和导出”选项卡中的导出复选框只是为了方便使用,这样依赖的 Eclipse 项目就不必包含与其父项目相同的库。

  1. 在独立项目中检查库的导出框是否有任何影响?
  2. 为 Android 构建的行为与标准 Java 项目有什么不同吗?在我的一个 Android 项目中,除非我选中我的几个库上的导出框,否则我会收到一个找不到类的运行时错误。这怎么可能发生?
0 投票
1 回答
378 浏览

android - 项目中的 Android 单元测试

我正在尝试从我的主项目中创建一个 Android 测试项目。完全类似于这个问题Android: How to use test project within main project(我试图恢复这个问题,因为这个问题已经过时了,我仍然无法找到答案)。

基本上我想重现 Android 测试的方式。它们实际上只是主项目中的 /tests/ 目录“请参阅链接以了解确切的布局。”

我们想要这样做的主要原因是能够减少项目的数量,因此我们不需要每个项目都有 2 个根文件夹。(又名测试项目和真实项目)。

从那以后,我可以自由地使用任何构建,但我假设 nant 是自动运行测试的方法。

任何帮助都会很棒,谢谢。

编辑:请注意 Eclipse 的问题是不容易提供此选项(至少我还没有找到它)。你可以导航到你想要的目录并创建一个 /tests/ 但它也会带来另一个附加的项目,我在这样做时遇到了一些链接问题。)

0 投票
2 回答
6045 浏览

android - Android无法运行单元测试

我正在尝试在 Mac 上为 Android 编写单元测试脚本。我能够通过 Eclipse 运行它,但需要能够自动化一切。

创建我正在运行的项目

我正在尝试运行以下命令

并不断收到以下错误(我的测试文件夹中的 AndroidManifest.xml 给了我)

INSTRUMENTATION_STATUS: id=ActivityManagerService INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.roamdata.roampayx/android.test.InstrumentationTestRunner} android.util.AndroidException: INSTRUMENTATION_FAILED: com.roamdata.roampayx/android.test.InstrumentationTestRunner INSTRUMENTATION_STATUS_CODE : -1 在 com.android.commands.am.Am.run(Am.java:118) 在 com.android.commands.am 的 com.android.commands.am.Am.runInstrument(Am.java:616)。 Am.main(Am.java:81) 在 com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 在 com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) 在 dalvik.system。 NativeStart.main(本机方法)

显然,这是某种路径问题。有什么我想念的吗?我尝试从 mainproject 文件夹和 testsproject 文件夹运行命令。

有任何想法吗?

0 投票
1 回答
1181 浏览

android - 自定义 android NuPlayer 以包含在 Android 应用程序中

问题:

自定义 Android 原生组件以包含在 Android 应用程序中的建议方法是什么?“原生组件”是指在 AOSP 中提供原生源代码但使用 NDK 文档中未公开的 API 的组件。


细节:

我想使用简化版的 Android 媒体框架(实际上,我只需要 NuPlayer 来为我的应用播放 RTSP 流)。我知道这种定制涉及使用来自 AOSP 的本机代码(框架/基础/媒体),修改我需要的内容;并根据我的需要构建它以生成 .so 文件。然后我做了一个System.loadLibrary()加JNI。

我的问题是 - 建议的方法是什么?

我不能使用 NDK(相反,我不应该使用 NDK),因为媒体框架中使用的许多 API 都没有暴露给 NDK。但是,如何构建我修改后的媒体框架代码?我确实Android.mk在那里看到了文件。我用什么来构建这些?

0 投票
1 回答
845 浏览

android - 除了发布和调试之外的 Android ant 构建

我为我的 Android 应用程序设置的默认 ant 系统有两个不同的选项:发布调试。我可以使用${build.is.packaging.debug}. ant release我可以通过执行或一步构建这些ant debug

我希望能够添加第三个选项:beta。通过这种方式,我可以为 beta 用户启用某些我不希望普通用户看到的标志,同时仍然忽略我的调试代码。我在 ant 构建系统的哪个位置指定新目标?