美文网首页开发者日记
低版本AndroidStudio项目升级到高版本

低版本AndroidStudio项目升级到高版本

作者: IT老五 | 来源:发表于2020-09-13 20:46 被阅读0次

    之前的android个人项目有一年多没有维护了,尽两年的重心也主要是小程序开发及.net,.net core相关开发,android从8以后开发比较少了,主要是维护,而因为电脑一直没换,所以维护也仅仅是解决部分bug,没有做大版本升级...

    近一个月来,不管是公司电脑还是个人电脑都换了,然后重新安装了新的as及相关插件,于是,打开旧项目就有很多问题了,最初是原项目gradle版本过低,新装的5.4.1,项目中用到的是3.5.3,编译时老提示最低编译版本为26,然后又是butterknife版本用了10.2.1,然后提示对应build sdk要用28,于是,又有一大堆问题需要去解决。

    Android * IT老五

    这里记录下Android低版本升级到高版本后的几个问题及解决方案:

    问题一:butterknife10.2.1与android Api 28.0.0 support-v4/v7库冲突问题

    因为太久没搞android,所以这一问题花了些时间去处理,后来出现了androidx替代v4/v7包,于是找到了对应的解决方案:gradle.properties中增加下面两句(其实28新建项目会带有这两句,只是我这是老项目,所以没有,需要手动添加)

    android.useAndroidX=true
    android.enableJetifier = true
    

    然后gradle sync,之前用到v4/v7的地方会报错,这里我也暂时没啥好方法,只有一个个改,能想到的简单点的操作有两点:1.使用ctrl+R替换,2.用alt+enter自动添加import;这里需要注意的是不仅仅是类中需要改,布局文件中,AndroidManifest.xml中也可能要改。

    ps: 后来发现这里有比较轻松的解决方法,在gradle和build sdk切换为高版本后使用Migrate to Androidx自动替换v4/v7位androidx, https://www.jianshu.com/p/f7a7a8765294

    问题二:butterknife的@Bind(R .id .xxx)找不到

    用@BindView(R .id .xxx)替换,全局替换下即可

    问题三:java.lang.BootstrapMethodError: Exception from call site #0 bootstrap method问题

    这里需要在build.gradle的android节点下增加

    compileOptions{
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

    以及,Refactor菜单,点击Migrate to Androidx...

    问题四:Flag android.useDeprecatedNdk is no longer supported and will be removed in the next...

    这里去掉gradle.properties中的android.useDeprecatedNdk=true,换成在build.gradle中使用cmake即可

    问题五:butterknife.bind()后,控件对象还是null

    在gradle中应用butterknife,应该以下两句都有

    implementation 'com.jakewharton:butterknife:10.2.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
    

    问题六:Glide的crossfade没有该方法

    使用 .transition(withCrossFade()) 替代 .crossFade()

    个人博客: IT老五
    微信公众号:【IT老五(it-lao5)】,一起源创,一起学习!


    其实还有很多其他问题,只是这几个问题是刚解决的,还留有一些记忆,就先记录下来,后续再汇总其他问题

    2020.05.24 12:03:52

    相关文章

      网友评论

        本文标题:低版本AndroidStudio项目升级到高版本

        本文链接:https://www.haomeiwen.com/subject/msyoektx.html