问题标签 [aapt]
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.
android - 构建android apk时如何将参数传递给aapt?
我正在Linux上使用ant(不使用Eclipse)构建一个apk,并且我试图找到一种在压缩资产之间切换的简单方法,以保持我的庞大数据库未压缩<2.3。根据这篇文章:
http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/
我看到可以通过指定类似的内容来做到这一点aapt -0 db
,但我找不到有关如何编辑 ant 与 aapt 交互方式的信息。还是我必须自己运行 aapt ?我该怎么办?
android - 如何在构建过程中解决 Android Libraries 自定义属性和包名重映射?
随着时间的推移,我们的 Android 项目已经扩展了很多,现在我们正在从同一个源代码树创建多个品牌 APK。由于 Android 的包命名要求,这变得具有挑战性。
我们的所有共享代码都在一个 Android 库项目中,该项目包含在主应用程序项目中。此外,我们还有适用于每个品牌的品牌资源的 Android 库“叠加层”。当我们想要建立一个品牌时,我们会为该品牌添加一些额外的属性,最终在主要共享代码 Android 库之前包括“覆盖”Android 库。为了显示:
“BrandALibrary 或 BrandBLibrary”在构建时切换,通过在构建时使用命令行开关包含 .properties 文件。那里没有什么太花哨的。构建脚本还必须在构建时更改 .APK 的包名称,以便两个 .APK 文件可以同时在给定设备上共存(主要用于 QA 目的,因为我们不希望客户同时拥有这两个文件)同时......虽然他们可以)。
在向我们的共享代码库项目添加一个类后,直到今天我们的构建中断,一切都运行良好。在寻找发生这种情况的原因时,我偶然发现了以下网页,该人遇到了同样的问题并修复了他的 aapt 版本以使其工作:
在我们的构建过程中,日志中会出现以下错误:
我的自定义属性没有什么特别之处,我有一个 state_add 和 state_list 定义,我可以使用它来设置控件的默认状态,该控件显示一个带有图标的按钮,该图标指示应显示哪些状态。它在某种程度上就像一个“切换”按钮,我最终可能会用切换按钮替换这个控件。
创建此按钮时,我遵循了本教程。
我的问题是,最后(这家伙是不是很啰嗦?),有没有办法确保 aapt 将“重新映射”自定义属性中使用的包名称。如果我什至想在我们的库中编写更多自定义控件,我们将需要 appt 能够执行以下操作:
- 如果在库项目中定义了自定义命名空间,则将该命名空间重新映射到正在构建的 android 应用程序的命名空间。
在 Ant 构建期间,我是否遗漏了一些基本的自定义属性映射方式?我可以做一些简单的事情来解决我的构建问题吗?
android - Android资源的数量有什么限制?
我们的一个应用程序有几千个小数据文件,我们目前正在打包为资产。如果我们可以将它们打包为原始资源,这将对我们的代码有所帮助。我试图找出应用程序可以拥有的每种类型的资源数量的限制,但我没有找到任何关于此的文档。有谁知道Android资源数量的限制是什么?
android - Eclipse 无法构建 Android 项目
它总是给出那个错误:
PS:ADT 15
android - PackageManager 和 AndroidManifest.xml 报告不同的使用权限
一直在做一些 Android 权限研究,并遇到了一个应用程序——根据 AndroidManifest.xml 文件——只声明WRITE_EXTERNAL_STORAGE
为权限。Android Market 也只报告这一点。使用 aapt 工具转储使用权限它也只报告一个权限。
但是,在 Android 设备(或模拟器)上运行的代码中,执行以下操作:
我获得了此 APK 的 2 个权限,READ_PHONE_STATE
清单中的一个WRITE_EXTERNAL_STORAGE
. 查看“管理应用程序”屏幕并为此选择详细信息也会显示附加READ_PHONE_STATE
权限。
是否存在 Android 清单中不需要的权限可以/被“暗示”(在代码中、通过功能使用等)的情况?或者换一种说法,为什么aapt
返回一组权限,而getPackageManager().getPackageInfo()
API 返回一组不同的权限?
编辑:
用“更好”的术语搜索发现了我正在寻找的答案: Android 权限:电话:读取电话状态和身份
简而言之,使用早期版本 SDK 编译的 APK 确实免费继承了一些权限......
android - aapt 不能使用绝对路径
我有一个奇怪的问题。在我的 bash 脚本或 Makefile 中,使用绝对路径的 aapt 不起作用,但如果我在本地目录中,它会起作用。
如果我执行以下操作,它将不起作用:
该命令确实运行并打印此输出:
但是当尝试加载 jar 时,我尝试加载的类最终找不到。
以下确实有效:
印刷:
这是在脚本中执行的整个代码(有效):
我很困惑为什么在使用 aapt 的绝对路径时找不到我的类。
谁能向我解释为什么它不起作用以及如何修复它以使用正确的绝对路径?
谢谢你。
java - 使用 Ant 构建一个包含 ActionbarSherlock 作为库项目的项目
我在使用 Apache 的 Ant 构建项目时遇到问题,其中包括 ActionbarSherlock 作为项目库。我已经使用“android update lib-project --path .--target android-13”成功地将库包含在actionbarsherlock库文件夹中,并且在我的项目中使用了“android update project --path.--target android-13 --library路径/到/actionbarsherlock/库”
使用 ant debug 可以正确构建库,但是当转到我的项目文件夹并尝试构建项目时,我收到以下错误:
[aapt] /var/www/vhosts/nicom/httpdocs/cl_app/res/values/style.xml:40:错误:检索项目的父项时出错:找不到与给定名称“Theme.Sherlock.Light”匹配的资源。[aapt] /var/www/vhosts/nicom/httpdocs/cl_app/res/values/style.xml:41:错误:错误:找不到与给定名称匹配的资源:attr 'abBackground'。[aapt] /var/www/vhosts/nicom/httpdocs/cl_app/res/values/style.xml:42:错误:错误:找不到与给定名称匹配的资源:attr 'abLogo'。[aapt] /var/www/vhosts/nicom/httpdocs/cl_app/res/values/style.xml:43:错误:错误:找不到与给定名称匹配的资源:attr 'actionBarSize'。
有没有人用这个库成功地建立了一个项目?我猜这是一个特定于库的错误,通常与我的项目无关,但如果我错了,请有人纠正我。
android - 未解析的 aapt 错误!
我在 Eclipse 中使用 Android,并试图将我找到的模板项目中的代码组合到 Android 在您启动新项目时创建的框架项目中。这不是初始设置;已经运行了几个项目,虽然我是 Android 编码的新手,但我已经工作了几个星期没有这个问题,所以我认为环境设置得很好。
我看到的错误是 -
有一次我清除了控制台消息,现在即使关闭项目和 Eclipse,然后重新打开,我也没有收到控制台消息,也没有标记我的源文件或资源文件。
什么是 aapt,我应该在哪里查找此错误的来源?在此先感谢您的帮助。
android - Eclipse 错误:您的项目包含错误,请修复它们
我正在使用仅适用于 Android 的 Eclipse Classic 3.7.2。我使用 Ubuntu 作为我的操作系统。当我在 Eclipse 上运行任何基本的 Android 应用程序时说“Hello World”,它会导致一个名为Your Project contains error(s), please fix them before running your application.
现在我已经在这里搜索并检查了其他人,但我没有得到解决方案。
我也试过Project > clean...
,但它不工作。
Windows->Show Views->Problems
显示2个错误:
生成最终存档时出错:java.io.FileNotFoundException:/home/android/Desktop/helloworld/bin/resources.ap_不存在。
无法解析aapt...