我正在关注" The Big Nerd Ranch的Android编程指南"本书(第2版)和特定章节(第21章)中,他们要求您为某些图像资源使用9补丁图像。在那之前,我编写的应用程序BeatBox工作得很好,编译时没有错误。
但是,当我继续使用9补丁图像替换一些drawable时,我遇到了构建错误,我无法构建应用程序。以下是我得到的错误:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"...>
<uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
...
</manifest>
我已按照本书中提供的确切说明进行操作,因此我认为结果应该没有错误。知道我为什么会遇到这个错误吗?
答案 0 :(得分:3)
AAPT与将资源捆绑到APK完全相关。一些非常详细的here包括(IMO)显示不同构建步骤的最佳图表。所以你的问题aapt.exe'' finished with non-zero exit value 1
几乎可以肯定是由你改变9补丁造成的。没有必要回到原点,试图记住你可能已经改变了什么,并最终拔掉你所有的头发。
我无法通过直接运行任何根Gradle任务(:app:generateDebugSources
和:app:generateDebugAndroidTestSources
)来复制您的问题。我也无法通过仅运行失败的Gradle任务来复制问题::app:processDebugResources
。
问题不太可能是由于按需配置失败导致的。#34;线路&#34;按需配置是一项孵化功能。&#34;如果您的构建成功,也会打印出来。
看起来您正在使用最新的构建工具(撰写本文时为23.0.2)versions,这很好。
你没有列出它,但我猜你也在使用最新版本的Android-Gradle插件(因为它们都是在同一时间出来的,Android Studio默认使用最新)。 more info
我建议回过头来看看我们要求你实施的第一个Drawable:ShapeDrawable
并确认这是有效的,然后转到下一个。这有助于查明问题所在。
如果您可以提供有助于您的样本的链接。
将来,与Gradle相关的问题,您可以自己运行Gradle任务(如上所述)并添加--info
标志。从命令行或&#34;终端&#34;在Android Studio中运行(在您的情况下):
./gradlew app:generateDebugSources --info
最后,无论你发现什么,请回到这里。您所看到的问题与我们的书籍没有直接关系,您的回答将有助于其他人。
答案 1 :(得分:2)
我遇到了同样的问题,我用以下方法解决了这个问题:
./gradlew clean