AAPT:错误:找不到资源,但是它存在于styles.xml中

时间:2018-10-17 17:07:44

标签: android android-studio android-gradle aapt

完全错误是

AAPT: error: resource style/AppTheme (aka com.mukmenev.android.findjob:style/AppTheme) not found.

但是<style name="AppTheme">中存在app\src\res\values\styles.xml

错误指向生成的文件

app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml

其中有我在主清单中没有的声明,例如

<uses-sdk
    android:minSdkVersion="19"
    android:targetSdkVersion="23" />

<application
    android:name="com.mukmenev.android.findjob.App"
    android:allowBackup="true"
    android:debuggable="true"
    android:hardwareAccelerated="false"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >

另一个问题是,怎么可能以及如何摆脱它们?


我花了大约一周的时间来尝试启动这个项目(以前的开发人员拒绝解释任何东西给我),并消除了诸如不存在资源链接的错误,但是这些错误是存在的并且可以通过肉眼看到

那么,如何使资源对于构建可见,又如何使生成的清单看起来像?
更新
修复了一些错误之后,它提出了一些错误,例如:

:app:mergeDebugResources
[string/default_web_client_id] \app\src\main\res\values\strings.xml [string/default_web_client_id] \app\build\generated\res\google-services\debug\values\values.xml: Error: Duplicate resources

同样,资源会在生成的文件中重复。
更新2
注释掉那些之后,它给出:

Execution failed for task ':app:mergeDebugResources'.
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
  Output:  \app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2100: error: duplicate value for resource 'attr/navigationMode' with config ''.
  \app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2100: error: resource previously defined here.

 Command: C:\gradle-4.6\bin\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\4627eedc0a8af356ec87f9d6cd62c57c\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy \
          -o \
          C:\_com_bucket\komirger-static_branch\app\build\intermediates\res\merged\debug \
          C:\_com_bucket\komirger-static_branch\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
  Daemon:  AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
  Output:  C:\gradle-4.6\bin\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\5e49e71c0795be6393bc5ece684619fc\res\values\values.xml:71:5-86:1291: AAPT: error: duplicate value for resource 'attr/navigationMode' with config ''.

  C:\gradle-4.6\bin\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\5e49e71c0795be6393bc5ece684619fc\res\values\values.xml:71:5-86:1291: AAPT: error: resource previously defined here.

我尝试使Android Studio中的缓存无效,但没有任何效果。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

本周,将Android Studio更新到最新版本后,我遇到了同样的问题,唯一的不同是aapt2从colors.xml开始对我的所有资源都产生了问题,当我粘贴来自其他项目的内容时,问题就转移到了尽管它似乎只在新项目中发生,所以我确定它与以前编写的代码无关。您应该尝试看看是否可以构建新项目,也许问题对您来说是相同的。

我尝试了很多方法来解决此问题,但是似乎对我有用的唯一事情是重新安装了Android Studio。我确保清除除项目外与该应用程序相关的所有内容,然后从头开始重新安装。之后,该项目的建立没有任何故障。

希望这会有所帮助!

PS。确保检查所有驱动器下的位置,以避免滑落,因为在我的情况下,Android Studio安装在E://中,而.gradle之类的Android数据在C://下被“隐藏”了,这使我可以选择使用先前版本重新安装设置几次导致没有变化。

答案 1 :(得分:1)

  

values.xml:错误:重复资源

strings.xml中仍然有重复的资源。删除重复的副本,之后它将正常工作。

ID名称:string/default_web_client_id

  

\app\src\main\res\values\strings.xml [string/default_web_client_id]   \app\build\generated\res\google-services\debug\values\values.xml:    错误:资源重复

如果路径正确且所有内容均位于正确的位置,请删除build文件夹并尝试重建项目。

答案 2 :(得分:1)

您需要从default_web_client_id中删除res/values/strings.xml

,然后让Goggle Services插件添加该字符串资源。

那么它很可能会生成R,然后就可以找到样式。