错误:找不到资源 android:attr/fontVariationSettings
Posted
技术标签:
【中文标题】错误:找不到资源 android:attr/fontVariationSettings【英文标题】:error: resource android:attr/fontVariationSettings not found 【发布时间】:2018-08-18 21:52:25 【问题描述】:警告:
android.dexOptions.incremental
属性已弃用 它对构建过程没有影响。 /home/midhilaj/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/be3106efb0df111fe5a3f7b356dd070b/res/values/values.xml 错误:(246, 5) 错误:资源 android:attr/fontVariationSettings 没有 成立。 /project/bkup/7_march_2018/hyshoper/milla/build/intermediates/incremental/mergeDebugAndroidTestResources/merged.dir/values/values.xml 错误:(246, 5) 错误:找不到资源 android:attr/ttcIndex。 错误:(269) 资源 android:attr/ttcIndex 未找到。错误:(269) 资源 android:attr/fontVariationSettings 未找到。 错误:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception:AAPT2 错误:检查日志 详细信息错误:链接引用失败。 错误:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception:AAPT2 错误:检查日志 详细信息错误:com.android.tools.aapt2.Aapt2Exception:AAPT2错误: 检查日志以获取详细信息错误:任务执行失败 ':milla:processDebugAndroidTestResources'。未能执行 aapt 信息:9 个错误信息:BUILD FAILED in 2s 信息:1 个警告信息:查看控制台中的完整输出
如何解决这个问题? 我的依赖项
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
exclude group: 'com.android.support', module: 'support-annotations'
)
compile 'de.hdodenhof:circleimageview:2.2.0'
compile('com.alibaba.android:ultraviewpager:1.0.6.1@aar')
transitive = true
compile('org.apache.httpcomponents:httpmime:4.3.6')
exclude module: 'httpclient'
compile 'com.synnapps:carouselview:0.1.4'
compile 'com.sun.mail:android-mail:1.5.5'
compile 'com.sun.mail:android-activation:1.5.5'
implementation 'com.muddzdev:styleabletoast:2.0.2'
compile 'javax.annotation:javax.annotation-api:1.2'
compile 'me.grantland:autofittextview:0.2.+'
// base library
//slider
compile 'com.ss.bannerslider:bannerslider:1.8.0'
//noinspection GradleCompatible
compile 'jp.wasabeef:recyclerview-animators:2.2.7'
compile 'com.android.support:multidex:1.0.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.github.satyan:sugar:1.4'
compile 'com.android.support:multidex:1.0.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:percent:26.1.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.github.satyan:sugar:1.4'
compile 'jp.wasabeef:recyclerview-animators:2.2.6'
compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.+'
compile 'com.afollestad.material-dialogs:core:0.9.4.2'
compile 'com.google.android.gms:play-services:9.8.0'
compile 'com.google.android.gms:play-services-auth:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-core:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-config:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.google.firebase:firebase-invites:9.8.0'
compile 'com.google.firebase:firebase-storage:9.8.0'
compile 'cn.pedant.sweetalert:library:1.3'
compile 'at.blogc:expandabletextview:1.0.3'
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.1.+'
compile 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
implementation 'com.android.support:design:26.1.0'
【问题讨论】:
我在这里解决了我的问题:***.com/questions/49162538/… 嘿,我遇到了和你一样的问题,“应用程序未安装”,同时将 .apk 文件发送给其他人。你能帮我解决这个问题吗? 【参考方案1】:尝试将 compileSdkVersion 更改为:
compileSdkVersion 28
在 api 级别 28 中添加了 fontVariationSettings。Api doc here
【讨论】:
当我将最新的 Kotlin 扩展库添加到项目中时,我不得不更改到版本 28,但我收到了这个错误。谢谢! 这为我解决了以下问题:“找不到资源 android:attr/fontVariationSettings。” @Micer 抱歉,我不确定您的项目中发生了什么,可能是您需要清理和重建。或者解决项目中的依赖关系。 @zyczyc 我的意思是我使用 27 并升级到 28 解决了所有问题。我之前尝试过清理和重建,但没有成功。 @anunixercoder 我遇到了同样的问题。 Sdk 28 不是选项,所以我搜索了 :app:depencies 冲突并将版本 zu 锁定到 api 27 兼容依赖项,如下面提到的 FilipFloryan (build-extras.gradle)。【参考方案2】:这是由于与更改为版本 28 的 android 支持库不兼容造成的。我通过强制构建使用较低的支持库解决了这个问题。 //就像构建gradle一样
configurations.all
resolutionStrategy
force 'com.android.support:support-v4:27.1.0'
在我更改此设置后,我的项目立即成功构建。希望这也能帮助你。我因此失去了一天的发展!
【讨论】:
这些行放在哪里? @Kakashi 将这些行放入 build.gradle(Module:app) @akhid 你的意思是平台/androids/app/build.gradle 吗?如果是,只需将此行粘贴到该文件的任何位置?我一直在寻找一段时间以知道将这些行放在哪里:( 我已将您建议的代码放在 app/build.gradle 文件的末尾,然后为实时 apk 重新编译应用程序,解决方案不起作用。谢谢。【参考方案3】:对于那些必须保留compileSdkVersion 27
且还无法升级到androidx的,请不要升级到(或超过)以下依赖版本链接。这些链接是引入重大更改的地方。你必须找到一个不使用androidx的早期版本。
https://firebase.google.com/support/release-notes/android#update_-_june_17_2019
https://developers.google.com/android/guides/releases#june_17_2019
例如,以下内容与 compileSdkVersion 27
兼容:
dependencies
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
以下内容将与 compileSdkVersion 27
中断,并且仅与 compileSdkVersion 28
兼容:
dependencies
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-messaging:19.0.0'
【讨论】:
感谢您为需要暂时保留版本 27 的人提供解决方案(接受的答案过于简单) 谢谢!我将 compileSdkVersion 设置为 28,但我没有使用 androidx 库,并且将 firebase 更改为较低版本有帮助。 我已将 compileSdkVersion 更新为 28,然后使用 flutter clean、flutter clean pub cache clear、flutter build apk 命令生成发布构建 apk 但此解决方案对我不起作用并显示相同的错误。请建议。谢谢。【参考方案4】:我用下面的代码解决了这个问题:
cordova plugin add cordova-android-support-gradle-release --save
之后编译成功。
【讨论】:
【参考方案5】:如果您要更新到 v28
将 compileSdkVersion 更改为 compileSdkVersion 28
【讨论】:
@victorsosa app/build.gradle 我放在那里但出现错误;可以举个例子吗? 我已将 compileSdkVersion 更新为 28,然后使用 flutter clean、flutter clean pub cache clear、flutter build apk 命令生成发布构建 apk 但此解决方案对我不起作用并显示相同的错误。请建议。谢谢。【参考方案6】:对于原生 Android 应用(不是 Cordova),我的解决方案是:
曾经:
implementation 'com.android.support:support-v13:+'
现在:
implementation 'com.android.support:support-v13:27.1.1'
【讨论】:
【参考方案7】:@所有问题都是由于 2019 年 6 月 17 日发布的 google play 服务和 firebase 的最新重大突破性变化。
如果您从事 Ionic 或 Cordova 项目。请使用 + 标记浏览所有依赖 google play 服务和 firebase 服务的插件
例子:
在我的 firebase cordova 集成中,我有 com.google.firebase:firebase-core:+ com.google.firebase:firebase-messaging:+ 所以加号总是下载导致错误的最新版本。根据 2019 年 3 月 15 日发布的版本号更改 + 号 https://developers.google.com/android/guides/releases
确保在cordova库的build.gradle文件中用实际版本替换+符号
【讨论】:
【参考方案8】:Ionic 3 开发人员的另一个修复方法是创建 build-extras.gradle 在platforms/android里面放下面
configurations.all
resolutionStrategy
force 'com.android.support:support-v4:27.1.0'
请注意,build-extras.gradle 与 build.gradle 不同
【讨论】:
【参考方案9】:我在一个颤振项目中遇到了这个错误,我需要做的就是将我的 compileSdkVersion 更新到 28。
步骤:
-
在您的应用级 build.gradle 文件中,搜索 compileSdkVersion
检查当前版本
如果小于 28,则更新为 28
正如上面提到的zyc zyc,属性 fontVariationSettings 是在 API 级别 28 中添加的。
您还可以阅读更多相关信息here
【讨论】:
【参考方案10】:通常是因为 sdk 版本和/或依赖关系。
对于 Cordova 开发人员,将您的依赖项设置放在 CORDOVA_PROJECT_ROOT/platforms/android/
文件夹下的“project.properties
”文件中,如下所示:
target=android-26
android.library.reference.1=CordovaLib
android.library.reference.2=app
cordova.system.library.1=com.android.support:support-v4:26.1.0
cordova.gradle.include.2=cordova-plugin-googlemaps/app-tbxml-android.gradle
cordova.system.library.3=com.android.support:support-core-utils:26.1.0
cordova.system.library.4=com.google.android.gms:play-services-maps:15.0.0
cordova.system.library.5=com.google.android.gms:play-services-location:15.0.0
因此,如果您使用 CLI "cordova build
",它将覆盖依赖项部分:
dependencies
implementation fileTree(dir: 'libs', include: '*.jar')
// SUB-PROJECT DEPENDENCIES START
/* section being overwritten by cordova, referencing project.properties */
...
// SUB-PROJECT DEPENDENCIES END
如果您在 project.properties 中使用正确的库及其版本,则应该没问题。
【讨论】:
删除android.library.reference.2=app
后多余的空格
你是天使!我正在为此绞尽脑汁。它选择将目标设置为 android 26,但正在从 28 加载依赖项。谢谢!!!!!!!!!【参考方案11】:
升级到 Android 3.4.2 和 FTC SDK5.2 后。我在构建 APK 时遇到了这些错误:
Android 资源链接失败 C:\Users\idsid\FTC\SkyStone\TeamCode\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1205:错误:资源 android:attr/fontVariationSettings 未找到。 C:\Users\idsid\FTC\SkyStone\TeamCode\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1206:错误:找不到资源 android:attr/ttcIndex。 错误:链接引用失败。
我所做的是将以下部分添加到项目构建 gradle 并修复问题。
subprojects
afterEvaluate project ->
if (project.hasProperty("android"))
android
compileSdkVersion 28
buildToolsVersion '29.0.2'
祝你好运。
【讨论】:
【参考方案12】:这让我很头疼!尤其是在更新到 Android Studio 3.2.1 和 Gradle 4.6(针对 Gradle 开发人员)之后。
我认为导致这种构建异常的因素不止一个。对我来说,我的 gradle.properties 文件中有以下代码行(使用 SDK 版本 27):
android.useAndroidX=true
android.enableJetifier=true
AndroidX 是 Android 默认支持库的替代品,在编译和面向 SDK 版本 28 (API 28) 时应使用。在更新 Android Studio 和 Gradle 之前,我已经添加了上面的行,以准备最终完全迁移到 AndroidX 以使用 SDK 版本 28 并且构建成功运行。直到更新后我才收到类似于上面的错误:
error: resource android:attr/fontVariationSettings not found
希望这会有所帮助。
【讨论】:
【参考方案13】:如果您由于最近在 react native 中突然出现此错误而偶然发现此问题 - 这是由于 Google Play 服务和 Firebase 中的最新重大更改。首先检查这个线程 -
https://github.com/facebook/react-native/issues/25293
而解决方案大多是这样的 -
https://github.com/facebook/react-native/issues/25293#issuecomment-503045776
【讨论】:
【参考方案14】:我有同样的错误,但不知道为什么会出现。搜索解决方案后,我将项目迁移到 AndroidX(重构 -> 迁移到 AndroidX...),然后手动更改整个类导入等以及布局文件(RecyclerViews、ConstraintLayouts、工具栏等)。 我还将 compileSdkVersion 和 targetSdkVersion 更改为 28 版本,整个项目/应用程序工作正常。
【讨论】:
【参考方案15】:如果有人在使用带有cordova-plugin-fcm-ng 或cordova-plugin-fcm 插件的phonegap 或cordova 时遇到此错误,对我有用的解决方案是为gradle“build-extras.gradle”创建额外的配置文件在 \platforms\android\app 文件夹中,并将以下行放入其中
configurations.all
resolutionStrategy
force 'com.google.firebase:firebase-messaging:18.0.0'
force 'com.google.firebase:firebase-core:16.0.8'
我在阅读此页面 https://github.com/facebook/react-native/issues/25371 时发现了此解决方案,特别是 shreyakupadhyay 于 2019 年 7 月 30 日发表的评论,并咨询了 https://developers.google.com/android/guides/releases#may_07_2019 关于最后一个库版本的信息。
【讨论】:
【参考方案16】:错误:找不到资源 android:attr/fontVariationSettings
当我添加 ButterKnife 库时出现此错误,但将 compileSdkVersion 升级到 28 并将 targetSdk 升级到 28 解决了我的问题。
【讨论】:
【参考方案17】:适用于 Ionic 3 开发人员。我必须更新platforms/android/project.properties 文件ONLY:
cordova.system.library.2
要 v4:28.0.0+ 否则构建会一直失败。
这样做之后,我的project.properties文件内容如下所示:
target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:24.1.1+
cordova.system.library.2=com.android.support:support-v4:28.0.0+
cordova.system.library.3=com.android.support:support-v4:+
cordova.system.library.4=com.android.support:support-v4:25.+
cordova.system.library.5=com.android.support:appcompat-v7:25.+
cordova.gradle.include.1=cordova-plugin-googlemaps/starter-tbxml-android.gradle
cordova.system.library.6=com.google.android.gms:play-services-maps:15.0.1
cordova.system.library.7=com.google.android.gms:play-services-location:15.0.1
cordova.system.library.8=com.android.support:support-core-utils:26.1.0
cordova.system.library.9=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
cordova.gradle.include.2=cordova-android-support-gradle-release/pasma-cordova-android-support-gradle-release.gradle
我希望这对某人有所帮助。对我来说是个真正的问题。
【讨论】:
恕我直言,为什么不全部支持lib,只有第二个? ?【参考方案18】:对我来说:我的外部库正在使用这个属性 attr/fontVariationSettings 和 attr/ttcIndex 所以我降级了我的库版本并同步项目。一切都好
所以现在:
compileSdkVersion 27
implementation 'com.android.support:appcompat-v7:27.1.1'
对于未来的读者来说,图书馆是谷歌的简单许可。
implementation 'pub.devrel:easypermissions:2.0.0'
这个库使用 sdkversion 28,我必须降级到 1.3.0
【讨论】:
您好,您如何检查此库是否使用 sdkversion 28? ? @ThomasKim 。实现这个库后,我得到了这个错误。我搜索并验证attributes attr/fontVariationSettings and attr/ttcIndex
仅属于 28
。所以我降级了这个库及其工作。所以我发现这是原因
我明白了,我有个问题,你为什么不选择升级到28?升级它会解决太正确(?)?(顺便说一句,我面临这个问题将近 3 天,不知道哪个插件错了?)
@ThomasKim 因为在撰写该答案时。 28 中有一些错误会导致设计视图渲染出现问题。所以 27 对我来说更好【参考方案19】:
我通过在 project.properties (target=android-28) 中将目标 android 版本更改为 28 并安装了 cordova-plugin-androidx 和 cordova-plugin-androidx-adapter 解决了这个问题。
【讨论】:
【参考方案20】:在尝试根据 sdk 28 (firebase crashlytics) 提取依赖项后,我突然遇到了这个问题,但后来决定恢复更改。
我尝试了自动重构Migrate to Androidx
(它完成了一半的工作),在某些时候在gradle.properties
中添加了android.useAndroidX=true
,并使项目再次运行。
但在交付之前发生了很多变化。无法使用 SDK 27 再次编译项目。我git clean -fd
,删除了$HOME/.gradle
,并在./gradlew :app:dependencies
中一直看到androidx
我最终也删除了~/.AndroidStudio3.5/
(我在 3.5.3 上)。这使得项目再次编译,我发现了暗模式......
【讨论】:
【参考方案21】:一年前我修复了这个 AndroidX 错误后,我又遇到了这个错误。我正在使用 Flutter。
我能够使用 Flutter 1.7.8+hotfix.4 发布版本,然后最近我将 Flutter 更新到版本 1.17.4,然后我无法再编译发布版本。调试版本运行良好。
TLDR: 这次它是一个使用了另一个没有为 AndroidX 正确更新的包的包 确保更新您的软件包! :)
错误信息:重要部分
[+1099 ms] > Task :package_info:verifyReleaseResources FAILED
[ +10 ms] FAILURE: Build failed with an exception.
[ +10 ms] * What went wrong:
[ +29 ms] Execution failed for task ':package_info:verifyReleaseResources'.
[ +3 ms] java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
[ +7 ms] ...\build\package_info\intermediates\res\merged\release\values\values.xml:171:error: resource android:attr/fontVariationSettings not found.
[ +2 ms] ...\build\package_info\intermediates\res\merged\release\values\values.xml:172:error: resource android:attr/ttcIndex not found.
[ +1 ms] error: failed linking references.
错误信息:分心
FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'barcode_scan'. > SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
“未找到字体变化设置”。是一个 AndroidX 错误,它要求你使用 compileSdkVersion 28,但我已经有了,所以我怀疑在我的两个 Flutter 版本之间实现了一些限制。
所以我不得不去寻找并更新软件包并找到它。 “package_info: ^0.3.2” 需要是“package_info: ^0.4.0” 才能使其工作。 为了让它“更”未来证明,这样写:
package_info: '>=0.4.0 <2.0.0'
更新软件包后,我的代码库将再次编译以供发布。 希望对您有所帮助。
【讨论】:
【参考方案22】:我删除了 pubspec.yaml 和外部库中所有未使用的插件来解决问题。
【讨论】:
【参考方案23】:我的情况确实不同。我在布局文件中设置了我的 TetxtView 的 android:text=" ??? " 属性,当我将其更改为 android:text=" ? " 时它起作用了。我不知道为什么会这样,也许它可以帮助某人。我花了几个小时才找到问题。
【讨论】:
【参考方案24】:我遇到了同样的问题,我安装了这个 cordova 插件并解决了问题。
cordova plugin add cordova-android-support-gradle-release --save
【讨论】:
以上是关于错误:找不到资源 android:attr/fontVariationSettings的主要内容,如果未能解决你的问题,请参考以下文章