在安卓工作室中更改项目"buildToolsVersion"时出错



我使用Android Studio 3.1.4android gradle plugin version 3.1.4

以前我在模块build.gradle设置了buildToolsVersion "27.0.3",构建/运行没有问题。今天我安装了较新版本的build tools并更改build.gradle以使用它:buildToolsVersion "28.0.2"

但是当我尝试sync project with gradle filesrebuild project时,它以AAPT2错误结束:

AGPBI: {"kind":"error","text":"error: u003citemu003e inner element must either be a resource reference or empty.","sources":[{"file":"<path to module>/src/main/res/values/ids.xml","position":{"startLine":16,"startColumn":4,"startOffset":752,"endColumn":55,"endOffset":803}}],"original":"","tool":"AAPT"}
....
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':<modulee-name>:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

但我不明白是什么导致了错误。例如,错误中的地址行是:

<item type="id" name="bookmark">false</item>

导致此错误的原因是什么以及如何解决此问题?

编辑

我在gradle.properties中添加了android.enableAapt2=false,它似乎忽略了错误,但会导致以下警告:

选项"android.enableAapt2"已弃用,不应使用 了。使用 'android.enableAapt2=true' 删除此警告。它 将于2018年底删除。

您不能将false(或任何其他值,但name(分配给 ID 资源。

ID 是使用 name 属性(而不是 XML 文件的名称(中提供的值引用的简单资源。因此,您可以将 ID 资源与一个 XML 文件中的其他简单资源组合在一个元素下。另外,请记住,ID 资源不引用实际的资源项;它只是一个唯一 ID,您可以将其附加到其他资源或在应用程序中用作唯一整数。

使用android.enableAapt2=false它可能会忽略逻辑错误,但不会"修复它"。

相关内容

  • 没有找到相关文章

最新更新