问题标签 [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 投票
1 回答
7470 浏览

android - 如何在构建过程中解决 Android Libraries 自定义属性和包名重映射?

随着时间的推移,我们的 Android 项目已经扩展了很多,现在我们正在从同一个源代码树创建多个品牌 APK。由于 Android 的包命名要求,这变得具有挑战性。

我们的所有共享代码都在一个 Android 库项目中,该项目包含在主应用程序项目中。此外,我们还有适用于每个品牌的品牌资源的 Android 库“叠加层”。当我们想要建立一个品牌时,我们会为该品牌添加一些额外的属性,最终在主要共享代码 Android 库之前包括“覆盖”Android 库。为了显示:

“BrandALibrary 或 BrandBLibrary”在构建时切换,通过在构建时使用命令行开关包含 .properties 文件。那里没有什么太花哨的。构建脚本还必须在构建时更改 .APK 的包名称,以便两个 .APK 文件可以同时在给定设备上共存(主要用于 QA 目的,因为我们不希望客户同时拥有这两个文件)同时......虽然他们可以)。

在向我们的共享代码库项目添加一个类后,直到今天我们的构建中断,一切都运行良好。在寻找发生这种情况的原因时,我偶然发现了以下网页,该人遇到了同样的问题并修复了他的 aapt 版本以使其工作:

http://devmaze.wordpress.com/2011/05/22/the-case-of-android-libraries-and-custom-xml-attributes-part-2/

在我们的构建过程中,日志中会出现以下错误:

我的自定义属性没有什么特别之处,我有一个 state_add 和 state_list 定义,我可以使用它来设置控件的默认状态,该控件显示一个带有图标的按钮,该图标指示应显示哪些状态。它在某种程度上就像一个“切换”按钮,我最终可能会用切换按钮替换这个控件。

创建此按钮时,我遵循了本教程。

我的问题是,最后(这家伙是不是很啰嗦?),有没有办法确保 aapt 将“重新映射”自定义属性中使用的包名称。如果我什至想在我们的库中编写更多自定义控件,我们将需要 appt 能够执行以下操作:

  • 如果在库项目中定义了自定义命名空间,则将该命名空间重新映射到正在构建的 android 应用程序的命名空间。

在 Ant 构建期间,我是否遗漏了一些基本的自定义属性映射方式?我可以做一些简单的事情来解决我的构建问题吗?

0 投票
8 回答
12521 浏览

android - “转换为 Dalvik 格式失败,错误 1”——仅在导出时

我知道这是一个重复的问题,但我已阅读并尝试了此站点上的所有解决方案,但我仍然收到错误消息;另外,只有当我从 Eclipse 导出我签名的 apk 时,我才会得到它。我能够构建和运行未签名的 apk。

我有:

  • 从构建路径中删除(并稍后恢复)所有库
  • 清理并重建了我所有的项目
  • 使用 -clean 选项重新启动 Eclipse
  • 从头开始重新创建应用程序项目

我知道错误 1 ​​意味着我有重复的符号,但我已经检查、清理并重建了我的构建路径一百万次,但我仍然收到错误,只有当我 export .

  • 如果我有重复的符号,我的未签名 apk 是否也会出现错误 1?
  • 如果我真的有重复的符号,我怎样才能让 Eclipse 告诉我它们是什么?我从导出向导中得到的只是一个单行错误对话框。:(
  • 当我手动签署apk时,我没有收到任何错误,但是当我在手机上安装它时,我收到一个简单的错误:“应用程序未安装。” :(:(

我的项目结构如下:

  1. 一个包含我 99% 代码的 Android 库项目。它在构建路径中有一份所需的 jar 文件。
  2. 一个包含两个类的 Android 应用程序项目。它通过 Android 选项卡引用库项目,而不是 Java 构建路径。除了 Android 2.1 之外,构建路径中没有引用其他源、项目或库。我什至从头开始重新创建了这个项目(我没有重新创建库项目,因为它要大得多)。

几天前一切正常!任何建议都非常感谢!

提前致谢...

编辑更新:当我禁用 Proguard 时错误消失。很奇怪。

0 投票
1 回答
1061 浏览

android - 尝试为摩托罗拉 Droid 构建 Android AOSP Gingerbread

我正在尝试使用本教程为我的 Droid 构建 AOSP Gingerbread来修补源代码,但出现此错误:

我究竟做错了什么?我应该怎么办?

0 投票
3 回答
5415 浏览

android - 如何构建一个Android版本?

我升级了我的手机,现在想开始打破我的旧手机。

我去拉了Android Source并同步了它。一切都膨胀了。接下来是运行:

我认为这没问题;没有显示任何内容,所以我认为没有发生错误。现在我被困在“午餐”上了。我必须在这里做什么?文档说

选择午餐时要建立的目标。确切的配置可以作为参数传递,例如

通过运行

我这样做了,但它告诉我full-eng不存在。所以我试着lunch得到

我该怎么做才能构建它?我是否未能下载适当的资源?

0 投票
1 回答
2106 浏览

android - 使用 ant 使用库构建 android 应用程序

我有 2 个项目(源代码)。项目 A 是未编译的库,项目 B 使用该库。我想用 ant 编译它。我正在使用 android update 来进行这样的设置。

android 更新 lib-project --target 2 --path c:\Android-Build\A

android 更新项目 --target 2 --path c:\Android-Build\B --library ..\A

在项目 B 的 libs 文件夹中,我什么都没有。我正在使用的所有库都在库 (A) 上。使用eclipse一切正常。

我如何使用 ant 进行编译。

ant 调试抛出错误。库 (A) 首先编译(生成 bin 和 gen 文件夹)。

但是当涉及到要编译的项目 B 时,无法从库中找到导入。我如何告诉 ant 在其构建过程中将库包含到项目 B 中?泰。

[javac] C:\Android-Build\B Activity.java:7: 错误:找不到符号 [javac] import com.aA;

*更新**


project.properties对于项目 B。


project.properties对于项目 A。

\\ 似乎是正确的,因为如果我将其更改为 \ ant 找不到库

0 投票
3 回答
18699 浏览

android - Android:如何从终端构建 .apk?

我正在开发一个动态应用程序生成器,所以我需要在服务器上使用 Java 在运行时运行命令

0 投票
1 回答
5793 浏览

android - ubuntu 11.10上的android构建错误

尝试在 ubuntu 11.10 上构建 android 2.3 时遇到问题

第一个错误 -

frameworks/base/libs/utils/RefBase.cpp:483:67: 错误:将 'const android::RefBase::weakref_impl' 作为 'void android::RefBase::weakref_impl::trackMe(bool, bool)' 丢弃限定符 [-fpermissive]

制作:* [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1

make: *等待未完成的工作......

我通过修改解决了这个问题,

frameworks/base/libs/utils/Android.mk LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive

但是做了上面的修改之后,又出现了新的错误,

主机 SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so)

宿主 C++:libutils <= frameworks/base/libs/utils/Asset.cpp

宿主 C++:libutils <= frameworks/base/libs/utils/AssetDir.cpp

宿主 C++:libutils <= frameworks/base/libs/utils/AssetManager.cpp

g++:错误:无法识别的选项'--fpermissive'</p>

make: * [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/Asset.o] 错误 1 ​​make: * Waiting for unfinished jobs....

g++:错误:无法识别的选项“--fpermissive” g++:错误:无法识别的选项“--fpermissive”</p>

制作:* [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/AssetDir.o] 错误 1

制作:* [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/AssetManager.o]

构建配置: Ubuntu 11.10 尝试了 gcc 版本 4.4 和 4.6 但没有任何结果,请帮助我摆脱过去一天的挣扎

用于构建的命令选项,

美元。构建/envsetup.sh

$午餐 1

$make -j4

GCC - 版本

gcc -v 使用内置规范。COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6.1/lto-wrapper 目标:i686-linux-gnu 配置:../src/configure -v --with-pkgversion=' Ubuntu/Linaro 4.6.1-9ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ ,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included -gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.

-------------------------------------------------- -------------- 编辑 2-

我认为这是 gcc 版本的问题,而不是以更好的速度移动,但现在我收到了这个错误 - cmd -make CC=gcc-4.4 CXX=g++-4.4

错误 -host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so) /usr/bin/ld: cannot find -lz collect2: ld returned 1 exit status make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] Error 1

0 投票
3 回答
10397 浏览

android - 如何在 APK 中打包预构建的共享库

这个问题似乎被问了很多,但所有人都试图使用 eclipse 将库打包到 APK 中。但是,我的要求是使用 Android 构建系统将库打包在 APK 内(稍后将使用 System.loadLibrary() 通过 Java 加载),即我想编写一个 Android.mk 文件来完成这项工作。

要求: 1. 预建共享库:libTest.so 2. 编写一个 Android.mk 文件,将其打包到 apk 内的 libs/armeabi-7 中。

我对我正在使用的构建系统了解不多,但在导出所需的环境变量后使用“mm”命令完成编译。

当我为 LOCAL_JNI_SHARED_LIBRARIES 提供 libTest 时,它会尝试在其导出的路径中找到它,但无法在其中找到它,因此构建失败。

任何人都可以就编写将我的预构建共享库打包到 APK 中的 Android.mk 文件提供任何指示吗?

0 投票
3 回答
1253 浏览

android - 使用 ant 制作 classes.dex 时出错

我只是简单地使用创建了我的android项目

所有必要的文件都被创建了但是当我试图用

命令我收到以下错误

我还没有编辑我的build.xml文件,主要规则build.xml文件在C:\Program Files\Eclipse-sdk\android-sdk\tools\ant\build.xml. 主要规则是build.xml

我该如何解决这个错误

0 投票
0 回答
146 浏览

android - Android 开源项目构建系统是否支持异常和 RTTI?

我正在使用 Android 构建系统从源代码构建 Android。我有一些抛出异常的 C++ 代码,但它不会构建:

我收到此错误:

其他一些工程师告诉我,Android OS 工具链不支持异常。谁能证实这一点?

请注意,我不是在询问 NDK 工具链。