升级毕加索库时 Android 崩溃

Posted

技术标签:

【中文标题】升级毕加索库时 Android 崩溃【英文标题】:Android Crashes while upgrading the Picasso Library 【发布时间】:2019-04-25 23:31:21 【问题描述】:

我正在尝试将我的 android 应用上的 Picasso Library 从版本 2.5.2 升级到最新版本的 2.71828

我正在使用其他相关库的以下版本。

implementation 'com.squareup.okhttp:okhttp-urlconnection:2.7.2'
implementation 'com.squareup:otto:1.3.8'
implementation 'com.squareup.retrofit:retrofit:1.9.0' 
implementation 'com.google.code.gson:gson:2.6.1'

当我尝试启动时应用程序崩溃,并出现以下错误。

java.lang.NoSuchMethodError: No interface method readUtf8LineStrict(J)Ljava/lang/String; in class Lokio/BufferedSource; or its super classes (declaration of 'okio.BufferedSource' appears in /data/app/com.app.dev-64CjLuqx-zjNoiTFWtBRvA==/base.apk!classes2.dex)

请告诉我我做错了什么。

【问题讨论】:

向我展示你的整个 app 的 build.gradle 文件 这看起来更像是 okhttp 中缺少的类 用最新版本升级您的改造和 okhttp 版本。 在 picasso 库中,与以前的版本相比,升级到 2.71828 时有很多变化,我在最新版本中遇到了一些与(context)方法有关的问题 【参考方案1】:

更换版本后我也遇到了同样的问题

更换后 Picasso.with(context)...

通过 Picasso.get()...

我对项目进行了清理,结果又恢复了

【讨论】:

【参考方案2】:

同样的事情也发生在我身上。正如官方文档所示,您可能正在尝试导入毕加索:

Gradle

实现'com.squareup.picasso3:picasso:2.71828'

脱掉三号试试这个方法:

实现'com.squareup.picasso:picasso:2.71828'

你也最会改变:

Picasso.with(MainActivity.this)
     .load(imgurl)
     .into(imageV);

收件人:

Picasso.get()
         .load(imgurl)
         .into(imageV);

【讨论】:

这是我的声明,实现 'com.squareup.picasso:picasso:2.71828'

以上是关于升级毕加索库时 Android 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

android:用毕加索创建圆形图像

毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选

将毕加索图像设置为 ListView 背景

带有毕加索的谷歌地图集群项目标记图标

个人资料图片上传器并使用毕加索加载

使用毕加索从 Firebase 向 CardView 显示用户图像不起作用