AAPT错误: 资源未找到,但在styles.xml中存在。

4

完整的错误信息如下:

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中清除缓存,但没有效果。有什么想法吗?


1
资源应该放在 app\src\main\res\ 目录下。你的 Java 文件在哪里? - TheWanderer
@TheWanderer 应用程序/src/main/java - www0z0k
1
res 文件夹移动到 main 中。 - TheWanderer
@TheWanderer 谢谢,我开始遇到另一堆错误了(一些 XML 文件中有重复的资源),我会修复它们并再次尝试。 - www0z0k
@TheWanderer 更新了我的问题。 - www0z0k
3个回答

2

你需要从res/values/strings.xml中删除default_web_client_id,并让Google服务插件添加该字符串资源。

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


10分钟前回答 - 7分钟前回答 看起来是重复的答案。 - ʍѳђઽ૯ท
不完全是重复,同时解释为什么会发生以及该如何处理。 - Martin Zeitler
它有点帮助,但出了另一个错误,我更新了我的问题。 - www0z0k
我会接受这个答案,因为它建议完全从strings.xml中删除键,这对我有用。 - www0z0k

1

我在将Android Studio更新到最新版本后遇到了同样的问题,但不同之处在于aapt2会导致所有资源文件出现问题,从colors.xml开始,当我从另一个项目中复制内容时,问题就转移到了drawable等文件上。然而,这似乎只发生在新项目中,所以我确定它与先前编写的代码无关。你应该尝试看看是否可以构建新项目,也许你的问题也是这个。

我尝试了很多方法来解决这个问题,但唯一有效的方法是彻底重新安装Android Studio。我确保除了我的项目外,删除了所有与应用程序相关的内容,并重新安装了软件。之后,项目就能够顺利地构建了。

希望这能有所帮助!

PS. 确保检查所有驱动器下的文件,以避免像我一样的错误。因为我的Android Studio是安装在E://盘下,而.android等数据文件却“隐藏”在C://盘下,这导致我多次选择使用之前的设置重新安装软件,但没有任何变化。


请检查问题更新 - 它是否适合您所描述的情况? - www0z0k
在更新了upd1和upd2之后,我注意到与我面临的问题中看到的相同模式,这些都来自.gradle文件。 - Panos Gr

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 文件夹并尝试重新构建项目。


删除了重复的内容,遇到了另一个错误,我更新了我的问题。 - www0z0k

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接