android 怪异异?;阕?/h1>
96
前行的乌龟
2018.01.31 09:57* 字数 635

电子竞技的发展 www.llsxj.com android 有些异常爆出来之后,并不能显示问题所在,我们看着也也知道到底哪的问题,这里记录下,这些问题碰到也确实蛋疼的很,搞不好是要花不少时间的,一天的好心情可能也要搞没了

1. supper 库版本和官方组件库不兼容


java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' 
at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)

举个例子: recyclerview 版本比 supper V7高就会出现这个问题,app 中以 supper 库的版本为基准,所有官方组件库的版本都不能高于 supper 库的版本。

2. AS 升3.0之后 gradle 脚本 APK 重命名


  • 编译的时候报错:


  • 发现是在gradle里打包输出apk的代码出的问题,原代码是这样的:


  • 修改成这样就可以了:


3. gradle 版本异常


Error:Failed to open zip file. 
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
  Re-download dependencies and sync project (requires network)
Re-download dependencies and sync project (requires network)

一看这问题就是zip解压失败,接着下面提示Gradle's dependency cache may be corrupt:Gradle的依赖缓存可能是损坏的。到这里大家应该明白,as出现这样的问题是怎么导致的了吧,文件损坏。

as 互译自动判断所需的 gradle 的版本地是否存在,不存在回去自动下载的,问题是 gradle 的包基本都在100-80M 之间,且远程连接不稳定,经常存在下载终中断,失败的问题,所以造成一个 gradle 文件下载不完全的问题,所以会出现上述报错信息

我们查看 AS 默认 gradle 配置路径:


gradle 配置路径

然后按照路径 xxx.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9 ,这里以3.3版本距离,找到我们对应的那个版本的 gradle 文件夹,找到最终的 gradle 文件


最终的 gradle 文件

这里我发现,AS 自动下载的 gradle.zip 文件只有20M,明显是下载不完全的,我们游2种处理手段:

  • 一个是删除 这个 gradle.zip 文件,AS 会再次自动下载,AS 升级到3.1之后,下载大文件会有提示,链接也稳定多了


    Snip20180414_12.png
  • 另一个是我们自己下载,然后把 下载的 gradle.zip 文件放到这个位置
    下载链接: services.gradle.org/distributions/gradle-3.3-all.zip , 版本号自自行替换即可

最后我们需要更新根目录下 gradle/wrapper/properties 下的 gradle 配置,需要更换版本号,AS 自动下载的不需要了。


Snip20180414_15.png

android_进阶
Gupao