iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android常见bug有哪些
  • 163
分享到

Android常见bug有哪些

2023-06-14 08:06:44 163人浏览 独家记忆
摘要

这篇文章给大家分享的是有关Android常见bug有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、关于使用OkHttp运行时出现的错误报错如下:Static interface met

这篇文章给大家分享的是有关Android常见bug有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1、关于使用OkHttp运行时出现的错误

报错如下:

Static interface methods are only supported starting with Android N (--min-api 24): okhttp3.Request okhttp3.Authenticator.lambda$static$0(okhttp3.Route, okhttp3.Response)

大概意思就是静态接口方法只从Android N开始使用。

解决方案:

因为静态接口需要在Java 8 下才支持使用,所以我们要使用静态接口,就需要在app的build.gradle文件中配置声明,使用Java 8编译。

所以需要加入以下代码来声明:

 compileOptions {  sourceCompatibility JavaVersion.VERSION_1_8  targetCompatibility JavaVersion.VERSION_1_8 }

修改如下图所示:

Android常见bug有哪些

添加完成以后,同步一下,然后重新运行项目就可以啦。

2、图片轮播控件com.youth.banner使用Glide异步加载图片时发生的崩溃

错误信息:

java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity at com.b.a.e.m.b(RequestManagerRetriever.java:311) at com.b.a.e.m.a(RequestManagerRetriever.java:130) at com.b.a.e.m.a(RequestManagerRetriever.java:114) at com.b.a.d.c(Glide.java:697)    at com.company.h6.c.ag$b.a(MainFragment.java:1079) at com.company.h6.c.ag$b.displayImage(MainFragment.java:1063) at com.youth.banner.Banner.setImageList(Banner.java:354)    at com.youth.banner.Banner.start(Banner.java:262)

根据错误信息找到发生闪退的代码位置:

 //自定义的图片加载器 private class ImgLoader extends ImageLoader {  @Override  public void displayImage(Context context, Object path, ImageView imageView) {    RoundedCorners roundedCorners = new RoundedCorners(20);   RequestOptions options = new RequestOptions().bitmapTransfORM(roundedCorners);   //报错地方   Glide.with(context).load((String) path).apply(options).into(imageView);  }    }

跟踪日志进入Glide调用的地方发现,出现在

RequestManagerRetriever.assertNotDestroyed()

方法中:

 @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) private static void assertNotDestroyed(Activity activity) {  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed()) {   throw new IllegalArgumentException("You cannot start a load for a destroyed activity");  }    }

这个错误是使用Glide异步加载图片的时候,Activity已经Destroyed

解决方案:

在使用Glide加载图片前,先进行Activity是否Destroy的判断:

  public static boolean isDestroy(Activity Mactivity) {  if (mActivity== null || mActivity.isFinishing() || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mActivity.isDestroyed())) {   return true;  } else {   return false;  }    }

在错误的位置进行替换:

 //自定义的图片加载器 private class ImgLoader extends ImageLoader {  @Override  public void displayImage(Context context, Object path, ImageView imageView) {    //添加判断    if(!isDestroy((Activity)context)){    RoundedCorners roundedCorners = new RoundedCorners(20);    RequestOptions options = new RequestOptions().bitmapTransform(roundedCorners);    Glide.with(context).load((String) path).apply(options).into(imageView);   }  }    }

这样就解决啦。

3、接入容联七陌客服系统,进入客服界面时闪退问题

错误信息:

Android常见bug有哪些

图片看起来不清晰,看报错代码:

java.lang.NoSuchMethodError: No virtual method into (Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/Target; in class Lcom/a/a/i; or its super classes (declaration of 'com.a.a.i' appears in/data/app/com.sami91sami.h6-1/base.apk)

我们可以根据报错,跳到报错的地方:

Android常见bug有哪些

该报错的意思就是:没有 

into(Landroid/widget/ImageView)

的方法,代码能编译通过,说明项目中肯定是添加依赖了,那怎么还会报这个错误呢?还没添加依赖之前,项目中也是使用的Glide进行图片的加载,会不会是项目中的Glide与容联Demo中的Glide有冲突呢。

我们可以根据报错的地方into方法,点进入看源码

Android常见bug有哪些

可以看到容联Demo使用的Glide版本是3.7.0。

再来看看项目中Glide使用的版本:

Android常见bug有哪些

可以看到项目中使用的Glide版本是4.5.0。

这时就想到真的很大概率是两者的Glide版本有冲突了。

果然将容联Demo中的Glide版本改成4.5.0之后,编译运行进入客服界面后,没有报错了,完美解决。

4、android 7.0系统解决拍照的问题

报错信息:

# main(1)android.os.FileUriExposedExceptionfile:///storage/emulated/0/xiangmu/3462884.jpg exposed beyond app through ClipData.Item.getUri()android.os.StrictMode.onFileUriExposed(StrictMode.java:1816)android.net.Uri.checkFileUriExposed(Uri.java:2350)

解决方法如下:

在相对应的页面中,写如下的方法:

private void initPhotoError(){  // android 7.0系统解决拍照的问题  StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();  StrictMode.setVmPolicy(builder.build());  builder.detectFileUriExposure();    }

在onCreate中调用上述的方法。

5、使用RecyclerView滑动闪退问题

错误信息:

Android常见bug有哪些

图片看起来不清晰,看报错代码:

IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter

看这个代码,只是并没有报到我们自己的代码里面来,在底层就崩溃了,在app层面并没有,弹出一个框,说应用程序已奔溃,而是直接就没了,用户感觉很奇怪。这种异常并不是很容易出现,而是偶尔出现,我的也是在后台奔溃日志中,发现了这种异常,我们自己都不知道什么地方报错的。

解决方案如下:

创建一个类LinearLayoutManagerWrapper

继承LinearLayoutManager,重写onLayoutChildren方法

public class WrapContentLinearLayoutManager extends LinearLayoutManager { public WrapContentLinearLayoutManager(Context context) {  super(context);  }  public WrapContentLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {   super(context, orientation, reverseLayout);  }  public WrapContentLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {  super(context, attrs, defStyleAttr, defStyleRes);  }  @Override  public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {  try {    super.onLayoutChildren(recycler, state);   } catch (IndexOutOfBoundsException e) {    e.printStackTrace();   }  } }

设置RecyclerView的布局管理为

WrapContentLinearLayoutManager对象

mRecyclerView.setLayoutManager(new WrapContentLinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));

其实这也不是什么解决方案,只是把这个异常捕获了,不让他奔溃了,这个问题的终极解决方案还是得让Google去修复。

感谢各位的阅读!关于“Android常见bug有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Android常见bug有哪些

本文链接: https://www.lsjlt.com/news/269058.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android常见bug有哪些
    这篇文章给大家分享的是有关Android常见bug有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、关于使用OkHttp运行时出现的错误报错如下:Static interface met...
    99+
    2023-06-14
  • Python常见的BUG类型有哪些
    今天小编给大家分享一下Python常见的BUG类型有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。错误类型 1:语法错误...
    99+
    2023-06-27
  • IE6有哪些常见CSS解析Bug
    这篇文章主要讲解了“IE6有哪些常见CSS解析Bug”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“IE6有哪些常见CSS解析Bug”吧!    1.默认高度(IE6)&n...
    99+
    2023-06-05
  • 有哪些IE6常见bug解决方法
    这篇文章主要讲解了“有哪些IE6常见bug解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些IE6常见bug解决方法”吧! ...
    99+
    2024-04-02
  • android常见的控件有哪些
    Android常见的控件有:1. TextView:用于显示文本2. EditText:用于输入文本3. Button:用于触发点击...
    99+
    2023-09-27
    android
  • android studio的常见问题有哪些
    Android Studio的常见问题包括但不限于以下内容:1. 安装问题:如安装过程中出现错误、无法打开Android Studi...
    99+
    2023-08-31
    android
  • Android Studio中常见快捷键有哪些
    这篇文章主要介绍“Android Studio中常见快捷键有哪些”,在日常操作中,相信很多人在Android Studio中常见快捷键有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android Stu...
    99+
    2023-06-04
  • Android 常见bug汇总及解决方案
    目录1、关于使用OkHttp运行时出现的错误2、图片轮播控件com.youth.banner使用Glide异步加载图片时发生的崩溃3、接入容联七陌客服系统,进入客服界面时闪退问题4、...
    99+
    2024-04-02
  • css中有什么常见的bug
    这篇文章主要介绍了css中有什么常见的bug,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、常见的主流浏览器1. 主流浏览器Interne...
    99+
    2024-04-02
  • 在Android应用中常见弹框有哪些
    本篇文章给大家分享的是有关在Android应用中常见弹框有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.Dialog弹框android 8种对话框(Dialog)使用方...
    99+
    2023-05-31
    android 中常 roi
  • android连接设备常见问题有哪些
    1. 设备无法被识别:可能是由于USB驱动未安装或者设备未启用USB调试模式。2. USB连接断开:可能是由于USB线松动或者设备电...
    99+
    2023-09-04
    android
  • Android中关于Binder常见面试题有哪些
    本篇内容主要讲解“Android中关于Binder常见面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中关于Binder常见面试题有哪些”吧!1.简单介绍下binderb...
    99+
    2023-07-02
  • android fragment生命周期常见问题有哪些
    在Android开发中,使用Fragment时常见的生命周期问题包括:1. Fragment的创建和销毁:如何正确地创建和销毁Fra...
    99+
    2023-10-20
    android
  • Android常见的图片压缩方式有哪些
    小编给大家分享一下Android常见的图片压缩方式有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!先给出一组数据原图:width:2976; height:2976原图实际:--->byte:2299820 Mb...
    99+
    2023-06-15
  • Java常见异常有哪些
    这篇文章主要介绍Java常见异常有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、概述异常指不期而至的各种状况,它在程序运行的过程中发生。作为开发者,我们都希望自己写的代码 永远都不会出现 bug,然而现实告诉...
    99+
    2023-06-15
  • android开发遇到的常见问题有哪些
    1. 兼容性问题:由于Android设备的碎片化,不同设备的硬件和软件规格不同,开发者需要对不同设备进行适配和测试,以确保应用在各种...
    99+
    2023-08-15
    android
  • win11有哪些bug
    今天小编给大家分享一下win11有哪些bug的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win11bug多吗:答:win1...
    99+
    2023-07-02
  • 常见的Java异常有哪些
    本篇文章为大家展示了常见的Java异常有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,...
    99+
    2023-06-16
  • Android中常见的图形绘制方式有哪些
    这篇文章主要讲解了“Android中常见的图形绘制方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android中常见的图形绘制方式有哪些”吧!目录图形绘制概述View + Canv...
    99+
    2023-06-20
  • Python常见的异常有哪些
    这篇文章主要介绍“Python常见的异常有哪些”,在日常操作中,相信很多人在Python常见的异常有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python常见的异常有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作