在使用Picasso进行转换时,Android应用程序会崩溃
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在使用Picasso进行转换时,Android应用程序会崩溃,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3892字,纯文字阅读大概需要6分钟。
内容图文
![在使用Picasso进行转换时,Android应用程序会崩溃](/upload/InfoBanner/zyjiaocheng/766/a7f15a8f40bd44f596f3686181f0dc0d.jpg)
我已经构建了一个应用程序,其中一些用户(管理员)可以登录我的网页上的管理员帐户并更改一些内容,例如应用程序中的背景图像.作为后端,我正在使用Parse.com,应用程序从那里加载其背景图像.我正在使用Picasso在应用程序中加载背景图像.在某些活动中,我希望背景模糊,所以我使用this模糊转换并使用以下代码加载图像:
int apiVersion = android.os.Build.VERSION.SDK_INT;
if(apiVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
// Blur the image
final BlurTransformation blurTransformation = new BlurTransformation(this, 20);
// Load the background image with blur
Picasso.with(this)
.load(backgroundPictureURL)
.transform(blurTransformation)
.into(backgroundView);
} else {
// Load the background image without blur
Picasso.with(this)
.load(backgroundPictureURL)
.into(backgroundView);
}
我已经使用Parse启用了崩溃报告,现在我正在获取有关应用程序在尝试应用模糊转换时崩溃的报告.这是我收到的堆栈跟踪:
java.lang.RuntimeException: Transformation blurred crashed with exception.
com.squareup.picasso.BitmapHunter$3.run BitmapHunter.java:434
android.os.Handler.handleCallback Handler.java:739
android.os.Handler.dispatchMessage Handler.java:95
android.os.Looper.loop Looper.java:135
android.app.ActivityThread.main ActivityThread.java:5254
java.lang.reflect.Method.invoke Native Method
java.lang.reflect.Method.invoke Method.java:372
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run ZygoteInit.java:898
com.android.internal.os.ZygoteInit.main ZygoteInit.java:693
Caused by: android.renderscript.RSIllegalArgumentException: Bitmap has an unsupported format for this operation
android.renderscript.Allocation.validateBitmapFormat Allocation.java:537
android.renderscript.Allocation.copyTo Allocation.java:1257
se.myapplication.main.CustomUI.BlurTransformation.transform BlurTransformation.java:60
com.squareup.picasso.BitmapHunter.applyCustomTransformations BitmapHunter.java:429
com.squareup.picasso.BitmapHunter.hunt BitmapHunter.java:238
com.squareup.picasso.BitmapHunter.run BitmapHunter.java:159
java.util.concurrent.Executors$RunnableAdapter.call Executors.java:422
java.util.concurrent.FutureTask.run FutureTask.java:237
java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java:1112
java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java:587
java.lang.Thread.run Thread.java:818
com.squareup.picasso.Utils$PicassoThread.run Utils.java:411
堆栈跟踪引用的Blur Transformation类中的代码行是这一行:
output.copyTo(blurredBitmap);
图像格式是jpg或png,当我在手机和模拟器上尝试时,没有问题,所以一些用户似乎只发生了崩溃,他们似乎有Android 5.0.1和5.0.2 (就像我一样,对我来说没有问题).
我无处可去,所以任何帮助都表示赞赏!可能导致问题的原因是什么?如何解决?
解决方法:
从您的错误日志:
引起:android.renderscript.RSIllegalArgumentException:Bitmap具有不支持的此操作格式
他们正在使用位图图像.尽管通常您可以在应用操作之前检查元数据,但大多数服务都不会,它们只是按文件名过滤(如* .img,* .jpg,* .png).
我一直在一个项目中,有时文件是以某种方式生成的,然后重新呈现为bmp,以提高它们的“质量”.虽然图像是bmp编码的,但它们仍保留为.jpg名称.据我所知,这似乎很常见,特别是从互联网上拍摄的图像(名称和内容之间的不匹配)
内容总结
以上是互联网集市为您收集整理的在使用Picasso进行转换时,Android应用程序会崩溃全部内容,希望文章能够帮你解决在使用Picasso进行转换时,Android应用程序会崩溃所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。