• android 异常解决方案汇总


    1)异常:Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)

    1、在工程下新建lib文件夹,将需要的第三方包拷贝进来。 2、将引用的第三方包,添加进工作的build path。选中jar包->Build Path 3、(关键的一步)将lib设为源文件夹。如果不设置,则程序编译可以通过,但运行的时候,会报:选中lib文件夹->source code
    java.lang.NoClassDefFoundError
     
    (2)异常:Caused by: android.os.TransactionTooLargeException
    导致原因是:Binder传输的数据太大
    如果Binder的参数或返回值太大,不适合的事务缓冲区,然后调用将失败,并将被抛出TransactionTooLargeException。
    解决方法:
    不要将大量数据传入Binder
     
    (3)异常:android.database.CursorWindowAllocationException:Cursor window allocation of 2048 kb failed
    导致原因:主要原因是因为使用了SimpleCursorAdapter类,其中的Cursor参数需要我们手动关闭,否则就会出现以上异常。
    解决方法:cursor.close()
     
    (4)异常:Excessive JNI global references错误的解决方案  GREF暴增
    导致原因:vm对jni层的reference有个数限制,过多很造成VM aborting。因此每次在GREF增加到2000以上的时候就直接aborting了
    解决方法:及时回收或关闭引用
     
    (5)异常:android.view.WindowManager$BadTokenException: Unable to add window -- token
    导致原因:使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。
    解决方法:采用当前Activity的Context
     
    (6)异常:android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file
    导致原因:重复安装软件,导致Sqlite3打开数据库异常
    解决方法:卸载相应软件,开关机,重新安装该软件,即可以解决相关异常。
     
    (7)异常:java.lang.NullPointerException
    异常原因:使用fragment时,fragment相关布局,必须给每个view设置id,否则通过activity获得fragment的实例时会出现以上异常
    解决方法:为fragment布局的每个view设置ID
     
    (8)异常:java.util.ConcurrentModificationException(并发操作异常)
    异常原因:ArrayList是非线程安全的,当同时在遍历和修改ArrayList时,就会出现该异常
    解决方法:使用Vector替换ArrayList,Vector是线程安全的。Vector的缺点:大量数据操作时,由于线程安全,性能比ArrayList低
     
     
     
    (备注:分享是一种美德,大家在Android开发中如果遇到一些具有代表性的异常,可以在评论中回复,我会负责给大家整理,供大家查询。)
  • 相关阅读:
    转:android WebView 文字 、图片分开加载
    js获取网页高度
    [转]URLPath匹配原则
    Java课程设计俄罗斯方块
    Three Little Habits to Find Focus
    ubuntu 12.04 无法联网的问题
    [转]时间去了哪里
    matlab 用plot在图像上面画图
    深入理解ES6临时死区(Temporal Dead Zone)
    sql 连接超时问题
  • 原文地址:https://www.cnblogs.com/sunfb/p/3173750.html
Copyright © 2020-2023  润新知