问题标签 [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 - 突然执行 aapt 时出错
我知道周围有很多这些主题,但似乎对我的情况没有帮助,也没有准确描述。最好的类似是aapt not found under the right path。
我的问题是我可以使用 Eclipse 进行整个晚上的编程、编译和使用我的设备,然后突然我为我当前的项目收到“错误执行 aapt”,当然 R.java 不再(正确)生成了。然后我重新启动 Eclipse,一切都消失了。但是,我平均每天会看到一次。
我最近切换到 amd64 并安装了最新的 Android-2.3 SDK 和匹配工具。我知道现在有一个平台工具文件夹,它有一个 aapt 版本,应该独立工作 SDK 版本。起初,我已按照 SDK 网站上的说明将此目录添加到我的 PATH 中。我也尝试过不将它添加到我的路径并制作链接平台/android-9/tools,以便每个 SDK 版本都可以使用它自己的旧副本。不用说,platform-tools/aapt 在那里并且拥有正确的权限,而且我已经能够随时在命令行上执行它。
当我确实编写了一个错误的 xml 文件或排序并适当地得到一个错误时,我看到一个额外的行,上面写着“aapt:/lib32/libz.so.1:没有可用的版本信息”。我正在运行一个最近的 Gentoo linux 系统。我已经安装了所有东西来支持 amd64 上的 x86,但是为了确定,重新出现了 emul-linux-x86-baselibs 和 zlib。问题仍然存在。我确实看到一些页面对一些 zlib 错误感到恐惧,但我不确定这是否相关。我意识到我不在参考 Ubuntu 平台上,但肯定差异不会那么大吗?
这很可能是 aapt 或工具本身的错误。为什么会突然停止工作?我还体验到 R.java 中的 id 不正确,即简单的 findViewById() 代码会因为混合 id 一次而给出 ClassCastExceptions,然后在没有任何更改的情况下完美地工作,只有一个“干净的项目”,在之后一个失败的 aapt。
最后,我在 aapt 上运行了一些命令,似乎没有添加任何额外信息:
有人能说出我的配置有什么问题吗?它可能闻起来像一个错误(否则让我们(再次)报告它)?
2010 年 1 月 6 日更新:
我又增加了一些知识。当我最近尝试导出已签名的 apk 时,我遇到了另一条关于我以前从未见过的 aapt 的错误消息(来自 Eclipse 错误视图的完整详细信息)。在这里也要注意,我可以重新启动 Eclipse 并可以再次导出 apk 而不会出现问题,至少在一段时间内。
我开始认为这与我的系统内存不足有关。消息“onvoldoende geheugen beschikbaar”的意思是“可用内存不足”。
当我转储 HPROF 文件时,我还在 DDMS 中看到内存不足错误。
这是错误日志(缩短):
android - Android/Eclipse 开发:尝试运行时出错:aapt 未知选项“--debug-mode”?
Helo 伙计们,我在尝试使用 Eclipse 运行我的第一个适用于 Android 的 HeloWord 应用程序时遇到以下问题,控制台说:
[2011-01-07 01:45:45 - HelloWorld] 错误:未知选项 '--debug-mode' [2011-01-07 01:45:45 - HelloWorld] Android 资产打包工具
我在 SDK 管理器中的已安装包中:
Android SDK 工具,修订版 8 Android SDK 平台工具,修订版 6 SDK 平台 Android 2.2,API 8,修订版 2 工具 R06 Windows 包,修订版 6
我可以很好地看到模拟器……但我不能只运行第一个教程,即使我没有接触过 Eclipse 生成的代码!帮助!!!:)
android - 为什么 Android aapt 会删除资产的 .gz 文件扩展名?
当我将 GZIP 文件添加到我的 Android 项目的资产时,在打包项目时会去除“.gz”扩展名。(因此,例如,我的资产文件夹中的“foo.gz”需要使用代码在代码中访问getAssets().open("foo")
。)这似乎不会发生在我正在使用的其他扩展名(例如,“.html”)中。该资产仍然是 GZIP-ed(我必须将输入流包装在 GZIPInputStream 中才能读取它)。
这是标准行为还是错误?如果它是标准的,是否有任何关于哪些扩展被剥离和哪些被保留的文档?
编辑:我错误地陈述了一些事情。我在使用 Eclipse 插件时遇到了这个问题。我没有尝试直接运行 aapt 来查看问题是否出在工具本身或插件如何使用它。
android - 发布 2 个基于相同代码但不同包名的应用程序
像许多 Android 开发人员一样,我希望为 MarketPlace 提供两个程序——一个演示版和一个完整版——它们都有相同的代码,但使用不同的资产。不幸的是,由于它们具有相同的包命名空间,因此它们不能同时加载到同一设备上。顺便说一句,资产在资产文件夹中,而不是在 res 文件夹中。
我想通过命令行制作第二个apk ,并从使用 NetBeans/Eclipse IDE 编译/构建的第一个apk派生它。
答案似乎是aapt及其--rename-package-manifest
选项,但我显然不明白如何使用它。
我执行以下步骤:
使用 NetBeans 构建我的完整 apk
使用apktool解压 apk
添加新资产
使用aapt重命名包
使用apktool重新打包到演示版本。
但是,我无法让第 4 步 - aapt rename 阶段工作。我在网上看到了很多关于这个的主题,但没有明确的例子。
然后我尝试了最简单的程序来测试它 - 一个 Hello World 使用下面的步骤。
Hello World 使用命令行选项可以正常工作,它可以在模拟器和设备上构建和运行。
但是,当我使用aapt --rename-manifest-package
命令时,它会出现很多错误。
我使用的命令是:
错误在 themain.xml
和AndroidManifest.xml
are 的形式中:
“找不到属性‘layout_width’的资源标识符”
任何想法都会受到欢迎。
android - Android打包问题:resources.ap_不存在
我试图在 Eclipse 中解决一个问题 3 个小时,但我没有取得任何进展。明天是客户来看我的应用程序,我没有时间了。这真是令人沮丧!
今天早上,当我编写代码并想在我的设备上运行我的应用程序时,Eclipse 突然崩溃了。'aapt.exe 已停止工作'
在此 Eclipse 不再启动之后。它冻结在飞溅的图像上。
我在互联网上查看并尝试了不同的解决方案,例如返回 Java SE 6 更新 20、更改 .ini 文件等,最后重新安装 Eclipse 完成了这项工作。
不久之后,“aapt.exe 已停止工作”返回。我通过更改项目目标找到了解决方案。1.5、1.6、2.2没关系,只要和之前的不一样。
现在我得到了Error generating final archive: java.io.FileNotFoundException: C:\xxx\bin\resources.ap_ does not exist
错误。
我试过干净,但这不起作用。删除并自动重新生成 R.java 也不起作用。
我在 Netbeans 中使用 Android 插件运行了相同的代码,它再次给了我“aapt.exe 已停止工作”:(
请问各位大佬,这个怎么解决?
编辑:
我想我可能找到了原因。这些是控制台中的错误行:
它正在谈论的文件是'bg.png'。这是一个小的 png 文件,我在 .xml 文件中重复。
该文件从第一次开始就可以正常工作,没有任何问题。我从可绘制文件夹中删除它,等待错误消息,然后将其添加回来。文件夹名称旁边的红色 x 消失了,但仍然没有什么不同......
android - aapt 基本名称属性
我将我的 SDK 升级到 2.3 并且我的构建脚本开始失败。我收到此错误:
build.xml:363:aaptexec 不支持“basename”属性
对于我的构建脚本中的以下行:
我不知道 aapt 发生了什么变化,但显然 basename 不再存在。你能告诉我应该用什么代替吗?
android - 重新打包 APK 文件以包含自定义资产 - 使用什么构建工具?
更新:这是一篇旧帖子,下面对损坏aapt
版本的引用将过时。
根据之前的反馈,我将自定义文本字段存储在我的应用程序的资产目录中。
我将使用资产文件中的默认用户详细信息编写应用程序,并且客户端希望为每个用户重建应用程序,包括资产文件中该用户的详细信息。
(我知道这种方法有一些严重的缺点,但客户仍然热衷于以这种方式进行 - 请参阅在 APK 文件中嵌入登录详细信息,每个用户都不同(或其他选项?))
这个问题与我在解压缩并更新自定义资产文件后重建 APK 文件时遇到的麻烦有关。我非常确信我遗漏了一些小东西,但是,我在这些方法上找到的文档和帖子对新手来说并没有足够的帮助。
aapt - Android sdk 工具:不幸的是,android 文档 [下面的链接 2] 上有关“使用 aapt”的 android 文档非常有限。控制台命令 -help 显示更多信息。当尝试使用它仅将文件添加到 test.apk 时,它最终会删除原始文件,并创建一个仅包含我尝试添加的文件的新文件 test.apk.zip。我无法找到正确的命令行组合来获取解压缩的 apk 并重新打包它——这将是我的第一个奖励。
apkbuilder - Android sdk 工具:首先,该工具已被弃用,这对其不利。我也无法让它与我在该解压缩文件夹中的内容一起使用。我想我缺少一个 pre-apkbuilder 步骤,因为 apkbuilder 要求提供资源 zip 存档,并且我有一个资源文件夹。
ant - 构建工具:其他类似的帖子说用 ant 构建,而不是使用 android 工具。我无法让蚂蚁工作。一个让 Ant 与 Android 一起工作的特定链接 [下面的链接 3] 看起来很有希望,但看起来它适用于不同的 android sdk(我的由 android 生成的 build.xml 看起来与他的不同)。不幸的是,我对 ant 知之甚少,并且难以成为足以解决我当前问题的专家。
除了下面 NickT 的解决方案 - 运行 ant 脚本给了我错误
taskdef class com.android.ant.SetupTask cannot be found using the classloader AntClassLoader[]。
我在网上找到了一些关于这个错误的引用,已经确认 local.properties 有一个 sdk.dir 设置指向我的 android sdk 安装文件夹(sdk.dir=/Applications/android-sdk-mac_86)。?????:可能还有一些我没有列出/发现的其他选项,我有兴趣听听。
我意识到深入研究通常被我的想法掩盖的齿轮可能会导致困难。但我知道很多 SO 用户可以做很多这样的事情,我希望我能引起他们中的一些人的兴趣。谢谢你的帮助。
(Mac Snow Leopard 10.6 64 位上的 Eclipse 3.6)
PS,我还不能发布超过 1 个超链接,所以我已经包含了这些地址以向我的问题显示更多信息。
(1):stackoverflow.com/questions/4783160/embed-login-details-in-apk-file-different-for-each-user-or-other-options
(2):developer.android.com/guide/developing/tools/aapt.html
(3): www.disgruntledrats.com/?p=27
python - aapt:打包时不要跳过(空)文件
我正在开发一个 Android 应用程序,它使用了许多res/raw
通过 SL4A 部署并包含在应用程序 APK 中的 python 脚本。由于脚本使用 python 包,它们的目录包含许多 0 字节大小的__init__.py
文件,这些文件是 python 将目录识别为包所必需的。我的问题是aapt
在打包过程中跳过这些文件,从而阻止脚本在设备/模拟器上运行,因为解释器找不到模块:
有没有办法告诉aapt
包含文件,还是我必须手动填充文件以使它们>0kb 大小?我已经查看了aapt
命令行选项,但没有找到任何东西。
android - Android图片app的优化打包
我正在开发一个显示各种图像的应用程序。我想针对各种屏幕分辨率进行优化。MultiResolution (1) 教程使用 res 文件夹中的许多资源限定符来显示各种设备分辨率的适当图像,但是如何打包呢?我不想为所有设备发送图像(或者我是吗?)。我想保持下载大小尽可能小,所以我只想为特定的屏幕分辨率打包。或者,我应该忘记包装图像并将图像放在网上某个地方吗?
对此主题的任何意见将不胜感激
(1) http://developer.android.com/resources/samples/MultiResolution/index ....
android - android aapt问题
我是用ant打包我的软件,需要打好几个不同包的分辨率,比如(240 * 320 480 * 800 640 * 960),我看到htc g4用240 * 320单独打包的资源文件是drawable-ldpi (它们安装在不同分辨率的不同分辨率资源apk中),我需要240 * 320.apk 320 * 480.apk 480 * 800.apk,240 * 320.apk只包含资源drawable-ldpi,320 * 480.apk只包含图像资源 drawable-mdpi .. .. 我查看了 aapt 参数,但没有找到方法..
谢谢...
从资源中生成 R.java / Manifest.java ...