【问题标题】:Android resource compilation failed in 3.3.0-alpha02Android 资源编译在 3.3.0-alpha02 失败
【发布时间】:2018-07-06 02:10:46
【问题描述】:

每当我尝试构建我的项目时,我都会收到此错误:

Android resource compilation failed
Output:  
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:497: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:498: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:499: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:503: error: :listItem>.
C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:504: error: :listItem>.

Command: C:\Users\smart\.gradle\caches\transforms-1\files-1.1\aapt2-3.3.0-alpha02-4818971-windows.jar\a281fb5dd58b50951126c2252f73d452\aapt2-3.3.0-alpha02-4818971-windows\aapt2.exe compile --legacy \
    -o \
    C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\res\merged\debug \
    C:\Users\smart\AndroidStudioProjects\ShoppingList\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon:  AAPT2 aapt2-3.3.0-alpha02-4818971-windows Daemon #2

有问题的 xml 行是:

<color name="colorPrimary">#d50000</color>
<color name="colorPrimaryDark">#b71c1c</color>
<color name="colorAccent">#757575</color>

<listItem name="windowActionBar">false</listItem>
<listItem name="windowNoTitle">true</listItem>

我正在使用

classpath 'com.android.tools.build:gradle:3.3.0-alpha02'

我的应用程序 gradle 文件是:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.my.kellen.shoppinglist"
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 2
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:design:26.1.0'

implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.2'
implementation 'com.google.firebase:firebase-core:16.0.1'

implementation 'com.bignerdranch.android:expandablerecyclerview:1.0.3'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

// Room components
implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
androidTestImplementation "android.arch.persistence.room:testing:1.1.1"

// Lifecycle components
implementation "android.arch.lifecycle:extensions:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
}

apply plugin: 'com.google.gms.google-services'

谁能帮帮我?我已经尝试清理和重建项目,并检查了所有有问题的行。我最近什至没有修改它们,所以我不确定发生了什么。

编辑 - 我已将 classpath 恢复为 3.1.3,将 distributionUrl 恢复为 4.5,现在我收到不同的错误消息:

Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details.

日志说:

error: :listItem>.
Message{kind=ERROR, text=error: :listItem>., sources=`[C:\Users\smart\AndroidStudioProjects\ShoppingList\app\src\main\res\values\styles.xml:17:5-90], original message=, tool name=Optional.of(AAPT)}` 

并指向两个应该有效的不同 xml 行:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/> 
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

    为什么不改变你的 gradle 插件版本?

    首先:通过查看你的gradle文件,'file'->'setting'->'Build,Execuion,Deployment'->'Gradle'来找到有多少本地gradle,然后你会发现这个文件包含一个文件命名为'wrapper\dists',打开它,你会看到它们。

    第二:编辑名为 'gradle-wrapper.properties' 的文件,并将 distributionUrl 的值更改为包含在本地 gradle 组中的版本。

    最后:把classpath改成build.gradle,有一个link可以帮助你。

    帮助你理解我蹩脚的英语,这样我就可以帮助你:)

    【讨论】:

    • 我已将我的类路径恢复为 3.1.3,将 distributionUrl 恢复为 4.5,我收到一条不同的错误消息:Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details。日志指向不同的 xml 行:&lt;style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/&gt; &lt;style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/&gt;
    • 换了style还有这种异常吗?
    【解决方案2】:

    我不知道为什么,但这对我的项目有用。 比如这个问题,我和你的接缝错误一样。 我这样修复它们:我搜索错误位置

    Android resource compilation failed
    Output:  F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1703: error: duplicate value for resource 'attr/progress' with config ''.
    F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1703: error: resource previously defined here.
    
    Command: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\802c7c840816e44cd175d342954a2954\aapt2-3.2.1-4818971-windows\aapt2.exe compile --legacy \
            -o \
            F:\Works\AndroidProject\lbw\app\build\intermediates\res\merged\debug \
            F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
    Daemon:  AAPT2 aapt2-3.2.1-4818971-windows Daemon #0

    然后我搜索文件

    F:\Works\AndroidProject\lbw\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
    

    我在第 1703 行找到了位置 enter image description here

    我在文件中找到了错误位置 enter image description here

    然后我复制名称absProgressBarattrs 中搜索然后我得到错误位置 enter image description here

    比我评论&lt;!-- &lt;attr name="progress" format="integer" /&gt;--&gt; build argen 错误会消失。

    【讨论】:

      【解决方案3】:

      我在 Android 资源编译失败的地方得到了类似的东西。

      error: <item> inner element must either be a resource reference or empty.
      

      我看到一些帖子建议删除“ids.xml”文件并解决问题。虽然这可能会解决问题,但您可能会造成更大的伤害,因为代码可能会引用该 id 标记。

      我通过更新“ids.xml”文件解决了我的问题:

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <item name="item_click_support" type="id">id</item>
      </resources>
      

      收件人:

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
          <item name="item_click_support" type="id"/>
      </resources>
      

      注意现在 Item 标签是一个自闭合的 xml 元素。这是现在在“ids.xml”文件中列出 id 的正确方法。 这个也可以参考安卓官方documentation

      干杯!

      【讨论】:

        【解决方案4】:

        当我升级 android studio 时出现此错误“Android 资源编译失败”。

        我在那里搜索,但我找不到解决方案,所以我删除了 values.xml 中的三行

        <item type="id" name="id_name" />
        <item name="omfm_main_label_id" type="id">OMFMLabelId</item>
        <item name="omfm_tag" type="id">OMFMTag</item> 
        

        所以它起作用了。 注意:build.gradle 中的所有库都必须升级。

        【讨论】:

        • values.xml?它在哪里?
        猜你喜欢
        • 1970-01-01
        • 2019-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多