android报错:ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:font

一段时间没做ionic,遇到过的一些问题处理完就是了,没有记录,结果别人问到一时想不起,有空还是要记录下。

问题出现

安装了cordova-plugin-file-opener2插件后build出现,移除该插件后build正常。

原理

对于这个问题,可以看下此文: https://github.com/mauron85/react-native-background-geolocation/issues/116

虽说是react-native的(尴尬脸),但殊途同归,关键词就是更新下android-suport包,由

com.android.support:support-v4:+

替换为以下类似版本:

com.android.support:support-v4:26.+

其中26这个版本号和compileSdkVersion中尽量保持一致。

实际排查

  • 方法一、在android studio调试

先考虑用android studio调试,是为了应对可能出现的error,在IDE的提示下能方便修改。

打开根目录下的build.gradle文件,修改相应内容为:

compile 'com.android.support:support-v4:26.+'

此时build可能会报错:

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.

应该是gradle的版本问题,'compile' 关键字已经废弃了,用'implementation' 和 'api'代替,所以调整为:

implementation 'com.android.support:support-v4:26.+'

再次build,提示成功:

image.png

  • 方法二、命令行调试

打开android项目中的project.properties文件,见到如下内容:

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:+

看到target是26,所以support包改为一致:

target=android-26
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:26.+

然后再执行build命令:

ionic cordova build android

成功build如下:

image.png


当前只遇到这种情况,所以处理到此,如果遇到其它情况再做调试。

注1:网上有文章说在项目根目录下的gradle.properties文件(如果没有,新建)中添加以下配置: android.enableAapt2=false 但实际上用发现此方法过期了,反而会报错。

注2:只提供解决方案,但不保证完全适用。如果没有解决,尝试把compileSdkVersionbuildToolsVersion更新到较新版本,且保持一致。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

单点登录原理及CAS实现【面试+工作】

单点登录原理及实现sso【面试+工作】 WEB的登录那些事 说道账户登录和注册,其实我们每天都在亲身感受着,像微博、知乎还有简书等等。我们总是需要定期的去重新登...

4659
来自专栏运维前线

Linux中设置'sudo'的10个小技巧

在Linux和其他类Unix操作系统中,只有root用户可以运行所有命令并在系统上执行某些关键操作,如安装和更新,删除包,创建用户和组,修改重要的系统配置文件...

2226
来自专栏电光石火

Nexus3.x安装及配置

1.4K6
来自专栏运维小白

10.16/10.17/10.18 iptables nat表应用

nat表应用 A机器两块网卡ens33(192.168.202.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网...

1987
来自专栏java一日一条

HTTP协议之HTTP的结构

会使用电脑的人基本上都会使用IE/Firefox/Chrome等网页浏览器的地址栏输入url地址来访问一个网站,那么网站页面是怎么展现到用户面前的呢?当然web...

1212
来自专栏Jed的技术阶梯

Linux下使用Nexus创建maven私服

关于系统运行级别以及chkconfig命令的用法参考Linux的运行级别和chkconfig用法

1.3K2
来自专栏前端杂货铺

socket.io搭配pm2(cluster)集群解决方案

socket.io与cluster 在线上系统中,需要使用node的多进程模型,我们可以自己实现简易的基于cluster模式的socket分发模型,也可以使用比...

8987
来自专栏Pythonista

自动化部署nginx负载均衡及监控短信报警

开发脚本自动部署及监控 1.编写脚本自动部署反向代理、web、nfs; 要求: I、部署nginx反向代理三个web服务,调度算法...

1462
来自专栏java沉淀

用自己的电脑做网站服务器,实现外网访问

网站服务器其实就是一台大型的电脑主机,我们也可以将自己家的电脑主机去做成一台用于存放网站的网站小型服务器供别人访问。那么如何用自己的电脑去做网站服务器呢?由于...

9.4K8
来自专栏蓝天

Redis集群master选举时长测试

在一台物理机上启动6个Redis实例,组成3主3从集群,端口号依次为:1379 ~ 1384,端口号1379、1380和1384三个为master,端口1379...

1054

扫码关注云+社区

领取腾讯云代金券