Android打包问题:resources.ap_不存在

Posted

技术标签:

【中文标题】Android打包问题:resources.ap_不存在【英文标题】:Android Packaging Problem: resources.ap_ does not exist 【发布时间】:2011-06-10 12:37:14 【问题描述】:

我试图在 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 已停止工作”:(

请问各位大神,我该如何解决这个问题?

编辑:

我想我可能找到了原因。这些是控制台中的错误行:

org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: <bitmap> requires a valid src attribute
at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:341)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:779)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:720)
at com.android.layoutlib.bridge.ResourceHelper.getDrawable(ResourceHelper.java:150)
at com.android.layoutlib.bridge.BridgeTypedArray.getDrawable(BridgeTypedArray.java:668)
at android.view.View.<init>(View.java:1846)
at android.view.View.<init>(View.java:1795)
at android.view.ViewGroup.<init>(ViewGroup.java:282)    
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
[2011-01-17 16:37:20 - gegevens.xml] Unable to resolve drawable "com.android.layoutlib.utils.ResourceValue@267e33de" in attribute "background"

它所说的文件是'bg.png'。这是一个小的 png 文件,我在 .xml 文件中重复。

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bg" android:tileMode="repeat" />

此文件从第一次开始就可以正常工作,没有任何问题。 我从可绘制文件夹中删除它,等待错误消息,然后将其添加回来。文件夹名称旁边的红色 x 消失了,但仍然没有什么不同...

【问题讨论】:

您可以发布您的 gegevens.xml(或您在其中定义了位图可绘制对象的任何 xml)吗? 【参考方案1】:

在黑暗中拍摄,但如果它只是一个 PNG 文件,您能否将其从项目中删除并重新添加?一定有什么东西破坏了资源文件。

【讨论】:

确实是 9-patch png 文件造成的。但是,只是删除它并添加一个工作 png 文件并不能解决它。我在我们的 SVN 上恢复到一个旧的、工作的版本,并一个一个地手动添加了 .png。我找到了导致它的那个,我现在正在使用另一个,它可以工作。 Eclipse 没有给我一条错误消息,而且它的行为如此不稳定,真是令人沮丧。重新安装所有东西毁了我整个下午.. 可能是相关的,但从我的一点 android 经验来看,如果在项目构建特定块时编写无效代码,生成的 R 文件似乎会陷入困境。清理通常可以修复错误。 我有一个 .png 文件,其名称不能是资源名称。【参考方案2】:

我刚刚在使用 Eclipse (Indigo) 执行 SDK 更新后遇到了同样的错误。通常我会删除错误并尝试重建或成功清理,但是这次它没有解决问题。

最后我去了android sdk文件夹并手动更新。回到 Eclipse 后,我再次遇到错误,但没有重建或清理,我能够通过第二次按播放将应用程序启动到设备上。

编辑:显然这个问题是间歇性的,因为我现在再次无法在设备上运行或导出已签名的 apk。

已解决:问题源于 .metadata 文件夹中的损坏。我通过重新安装 Indigo 发现了这一点,但这样做时我没有删除原始工作区文件夹。问题当然又出现了。我完全删除了 .metadata 文件夹,它有效地重置了所有 Eclipse 配置设置。现在所有部署和签名工作都完美无缺。只需要再次按照我的喜好设置环境,这需要几分钟而不是我花费数小时进行故障排除。

【讨论】:

在我更新到 ADT r14 和 SDK Manager 后的过去两天里,我遇到了同样的问题!我不知道该怎么感谢你!我试图重新安装 Eclipse,但我没有想到该死的 .metadata 文件夹。 +100 我的朋友。 :D +1 太棒了,它解决了我的问题,非常感谢。现在它已经解决了,我可以在周日晚上 23:30 继续为明天的演示文稿工作。要是我能在周五下班前找到你的帖子和时间就好了……【参考方案3】:

在从另一台机器导入我的项目后,我刚刚遇到了同样的问题,但在控制台中没有像 OP 这样的任何错误。我取消选中项目->自动构建,然后执行项目->清理,这解决了我的问题。我实际上在我的项目的 bin/ 目录中丢失了几个文件,这将它们全部修复。

【讨论】:

这个固定的矿山项目:) +1【参考方案4】:

我认为出现此错误的原因有很多。以下解决方案仅适用于使用 ADT 14(昨天发布)并将构建输出设置为 Verbose 时出现的相同错误消息:

在所有项目(包括新创建的项目)上升级到 ADT 14 和 SDK 14 后,我在使用 Eclipse 3.7 (Indigo) 时遇到了同样的错误。我发现有人在 ADT 错误跟踪器上发布了一种解决方法,基本上是将 Eclipse 设置->Android->构建->构建输出从“详细”切换到“正常”。帖子是here。

【讨论】:

天哪,我讨厌 Google 的蹩脚工具集 :( .... 不过,TomW 很好地找到了答案!【参考方案5】:

在我的场景中,昨天打开 Eclipse 时试图下载更新,但我取消了它,因为我正在使用我的手机热点。我尝试了这里提到的元数据文件夹删除解决方案,但对我不起作用。转到 Window->SDK Managerupdating 一切似乎都是我的解决方案。

【讨论】:

最好在关闭eclipse的情况下打开SDK Manager,因为更新会发现冲突。【参考方案6】:

我遇到了同样的问题,我在每个资源目录中添加了一些图像,但不幸地将它们命名为 .png。实际上有 jpegs 并且 eclipse 插件正在标记这个(我在控制台中不知道)

我发现的问题是,如果您清除控制台,那么日志信息会丢失,并且不会再次记录任何内容!

将扩展名从 .png 更改为 .jpg 解决了我的问题

【讨论】:

是的,将扩展名从 .png 更改为 .jpg 也解决了我的问题。原因可能是网上的原图是jpg,但是我在我的机器上尝试保存为png。【参考方案7】:

上述解决方案对我不起作用。

我这样做的方式不仅是更新 ADT,还更新 SDK。为此,只需转到 Android SDK Manager 并下载更新。

它工作!

【讨论】:

【参考方案8】:

这非常没有意义,但是将构建模式从详细更改为静音就可以了!没有其他事情(清理项目、重新打开、重新安装)。

【讨论】:

【参考方案9】:

尝试运行干净,但也取消选中自动构建并单击“项目”菜单下的“构建项目”。手动构建后,可以重新勾选“自动构建”。

我也会关闭 eclispe,然后杀死 adb

> adb kill-server

【讨论】:

不幸的是这也不起作用:( resources.ap_ 仍然不存在 该文件应该由 egit 插件自动构建和维护。您的某个资源是否已损坏导致该文件的构建失败? 我没有添加或删除资源文件,我怎么知道是哪一个导致的呢?【参考方案10】:

当您使用错误的黑点/线创建 ninepatch 时,有时会发生此错误。例如,右线和底线必须是实线,没有短划线或空白区域。

【讨论】:

【参考方案11】:

试一试

windows-> preferences -> android -> 构建 -> 构建输出

静音

http://code.google.com/p/android/issues/detail?id=20395

【讨论】:

欢迎来到 ***。首先,包含指向外部站点的链接而没有任何其他信息的答案不是好的答案;如果外部链接因某种原因关闭或消失,您的回答将变得毫无意义。您应该解释解决方案,然后添加链接作为附加参考。其次,我查看了您发布的链接,除了链接文章提到aapt.exe之外,看不到它的内容与此问题之间的任何关系。您能否编辑您的答案以阐明该链接如何回答所提出的问题?谢谢。 :)【参考方案12】:

在某些情况下,修复上游错误后,此错误会消失。就我而言,这是“fullwebview.xml”中的版本不兼容。

在那里,'layout_width'/height 设置为我的构建目标 2.1 不支持的值。将值更改为 'fill_parent' 解决了这个问题。

【讨论】:

【参考方案13】:

我遇到了同样的错误,但后来我看到我的layout.xml 没有捕捉到TextView 的错误,其android:text="@string/my_unmapped_string 字符串资源未映射到strings.xml 中。所以当我查看它所显示的图形布局时:

无法解决.....

当我正确映射资源并再次运行项目时,它运行良好,bin\resources.ap_ does not exist 错误消失了 :)

【讨论】:

【参考方案14】:

在我的例子中,文件add-icon.175x175-75.png(有效的文件名,但无效的资源名)被错误地复制到了res/drawable。删除此文件后,Eclipse (在 2015 年 4 月)使用不正确的源进行了一些成功的构建,然后才开始表现得明智,显示我缺少资源和格式错误的 XML(我更改了布局)。

【讨论】:

以上是关于Android打包问题:resources.ap_不存在的主要内容,如果未能解决你的问题,请参考以下文章

[android]android下apk的安装过程

10_android打包的过程

Android 逆向修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )

Android 安装包优化动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )(代

Unity打包android时会出的一些问题

HBuilder打包Android apk 支付不了问题解决