android - AAPT:错误:找不到资源,但它存在于 styles.xml
问题描述
完全错误是
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" >
所以另一个问题是它怎么可能以及如何摆脱它们?
我刚刚花了大约一周的时间试图启动这个项目(由拒绝解释任何事情的前开发人员给我的)并消除错误,如指向不存在的资源的链接,但这些错误是存在的并且是肉眼可见的。
那么如何使资源对构建可见,以及是什么使生成的清单看起来像它的样子?
upd
在修复了更多错误后,它出现了几个错误,例如:
: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
同样,资源在生成的文件中重复。
upd 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 中使缓存无效,但没有效果。有任何想法吗?
解决方案
你需要default_web_client_id
从res/values/strings.xml
并让 Goggle 服务插件添加该字符串资源。
那么它很可能会生成R
,然后可能会找到样式。
推荐阅读
- apache-spark-sql - 如何在 SparkSQL 中注册临时表
- python - 如何使用 python 与打印框交互
- recursion - Ocaml 中的列表递归
- ios - Xcode 9.4 Build(Debug, Release) OK,但存档失败,“找不到选项的目录..”
- python - np.shuffle 比 np.random.choice 慢得多
- dns - 客户的 IT 拒绝设置 SPF
- spring - Cas and Spring example: I don't understand "setUserDetailsService"
- python - How do I denormalize the sklearn diabetes dataset?
- go - Serving a map of strings without 3rd party libraries using http.filesystem in Go (Golang)
- facebook - 如何为 Facebook 访问令牌和用户帐户建模