更新到 Android Studio,现在收到 AAPT: error: resource attr/type not found error for Navigation

Blo*_*wan 3 android gradle aapt aapt2

我刚刚更新到 Android Studio 3.6.1 和最新的 gradle 版本,现在我的项目不会因错误而构建

.gradle/caches/transforms-2/files-2/<some-hash-number>/navigation-common-1.0.0-alpha01/res/values/values.xml:16:5-21-25: AAPT: error: resource attracts/type not found
Run Code Online (Sandbox Code Playgroud)

我试图清除缓存并重建,但没有帮助。所以我也尝试了无效缓存和重启,这也没有改变任何东西。不知道还有什么可以尝试...

编辑:添加 Values.xml。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="NavAction">
        <attr name="android:id"/>
        <attr format="reference" name="destination"/>
        <attr format="boolean" name="launchSingleTop"/>
        <attr format="boolean" name="launchDocument"/>
        <attr format="boolean" name="clearTask"/>
        <attr format="reference" name="popUpTo"/>
        <attr format="boolean" name="popUpToInclusive"/>
        <attr format="reference" name="enterAnim"/>
        <attr format="reference" name="exitAnim"/>
        <attr format="reference" name="popEnterAnim"/>
        <attr format="reference" name="popExitAnim"/>
    </declare-styleable>
    <declare-styleable name="NavArgument">
        <attr name="android:name"/>
        <attr name="android:defaultValue"/>
        <!--free format since in future it could be Parcelable-->
        <attr name="type"/>
    </declare-styleable>
    <declare-styleable name="NavDeepLink">
        <attr format="string" name="uri"/>
        <attr name="android:autoVerify"/>
    </declare-styleable>
    <declare-styleable name="NavGraphNavigator">
        <attr format="reference" name="startDestination"/>
    </declare-styleable>
    <declare-styleable name="Navigator">
        <attr name="android:id"/>
        <attr name="android:label"/>
    </declare-styleable>
</resources>
Run Code Online (Sandbox Code Playgroud)

Tas*_*iwa 12

升级到 Android Studio 3.6 后我遇到了同样的问题。为了修复它,我必须在我的attrs.xml文件中添加我的自定义视图属性的格式。例如

<declare-styleable name="TheCustomView">
    <attr name="custom_view_attribute" />
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)

变成了:

<declare-styleable name="TheCustomView">
    <attr name="custom_view_attribute" format="string" />
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:这个“格式”要求是由 Gradle 更新引入的(可能是从 6.1.1 和插件 4.0.0 开始),而不是 Android Studio 本身 (3认同)