升级AndroidStudio3.3后PullLoadMoreRecycleView闪退问题

本文详细解析了在升级Android Studio后,使用PullLoadMoreRecycleView导致的闪退问题。通过更新到AndroidX并调整相关配置,成功解决了资源ID找不到的错误,实现了项目正常运行。

升级AndroidStudio后PullLoadMoreRecycleView闪退问题

PullLoadMoreRecycleView是一个挺不错的下拉刷新,上拉加载的刷新库。但是已经很久没有更新了.

今天要开发新功能,发现使用了PullLoadMoreView的列表界面就会闪退,一路debug进入到源码内部,(一般源码不会出现问题,可能项目的环境更新了之后,旧版本的recycleView就不能使用)

问题出在inflate中,直接闪退。
提示找不到resourceID。

    public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot) {
        final Resources res = getContext().getResources();
        if (DEBUG) {
            Log.d(TAG, "INFLATING from resource: \"" + res.getResourceName(resource) + "\" ("
                    + Integer.toHexString(resource) + ")");
        }

        final XmlResourceParser parser = res.getLayout(resource);
        try {
            return inflate(parser, root, attachToRoot);
        } finally {
            parser.close();
        }
    }

遇到源码的问题,只能更新recycleView了。

在最新的Google项目架构指南中推荐大家使用AndroidX代替supoort包。

意思是以后不再使用supoort的形式推出新的扩展了,新的扩展都放在了AndroidX中,我想可能是为便于管理吧。

升级到AndroidX传送门

升级到AndroidX之后会将所有的support库中使用到的相关控件都迁移到androidx包下

那么问问题就来了,三方库的引用怎么办???

这种情况编译、运行时候会报错,根据相关的报错查找那部分的库出问题,升级到最新版本。一些维护积极的库都已经更新到了最新版本,比如Butterknife-10.1.0,在更新到最新版之后记住更新JDK的版本

android {
  ...
  // Butterknife requires Java 8.
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

遇到了很久没有更新的三方库怎么办,就像PullLoadMoreRecycleView

  • 你可以给作者提issue或者邮提示更新
  • down下来源码,moudle依赖,

PS:如果提示gradle的相关问题,可以升级一下gradle的版本,

项目根目录下gradle-wrapper.properties文件更新gradle到最新版本。

#Wed Aug 21 14:54:19 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

项目build.gradle中升级gradle到最新版本(3.4.2)

  dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

最后编译、运行。
一切都是原来的模样。

有问题,联系我啊 !

xpg@alphathink.org

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值