bug集合及其解决方法

点击查看原文

1、

java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 278

解决:接口数据格式与实体类数据格式不一样



2、

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wangll.activity/com.wangll.activity.MainActivityPerson}:

Caused by: java.lang.NullPointerException

at android.support.v7.app.ActionBarImplICS.getDisplayOptions(ActionBarImplICS.java:

解决:Android4.4 ActionBar

  1. 加入v7包
  2. Activity 继承ActionBarActivity
  3. android.support.v7.app.ActionBar actionBar =getSupportActionBar();

    actionBar.setTitle("标题");

    actionBar.setDisplayShowTitleEnabled(true);

    Drawable arg0=getResources().getDrawable(R.drawable.bg_home_topbar);

    actionBar.setBackgroundDrawable(arg0);

    actionBar.setDisplayHomeAsUpEnabled(true);

  4. 主题: android:theme=”@style/Theme.AppCompat”


3、

Fragment(XXFragment) not attached to Activity

解决:

强调内容1、关于Fragment(XXFragment) not attached to Activity 异常。

出现该异常。是由于Fragment的还没有Attach到Activity时,调用了如getResource()等,须要上下文Content的函数。

解决方法。就是等将调用的代码写在OnStart()中。网上还有几处这样的參考:http://stackoverflow.com/questions/10919240/fragment-myfragment-not-attached-to-activity 回答的主要是在调用

[java] view plaincopy

getResources().getString(R.string.app_name);

[java] view plaincopy

getResources().getString(R.string.app_name);

之前添加一个推断isAdded(),两外说这个异常解决的方法的有http://stackoverflow.com/questions/6870325/android-compatibility-package-fragment-not-attached-to-activity

这个是针对第二种情况下的解决方案。

2、在使用Fragment保存參数的时候。可能是由于须要保存的參数比較大或者比較多。这样的情况下页会引起异常。比方代码

[java] view plaincopy
Bundle b = new Bundle();
b.putParcelable("bitmap", bitmap2);
imageRecognitionFragment.setArguments(b);
[java] view plaincopy
Bundle b = new Bundle();
b.putParcelable("bitmap", bitmap2);  

设置好參数,而且加入hide(),add(),方法之后,须要commit(),来实现两个Fragment跳转的时候,这样的情形下參数须要进行系统保存。可是这个时候你已经实现了跳转。系统參数却没有保存。

此时就会报

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

异常。分析原因:你并不须要系统保存的參数。仅仅要你自己设置的參数可以传递过去,在另外一个Fragment里可以顺利接受就行了,如今android里提供了第二种形式的提交方式commitAllowingStateLoss(),从名字上就能看出,这样的提交是同意状态值丢失的。到此问题得到完美解决,值的传递是你自己控制的。

这里也说一下另外一个问题。bitmap 也可以通过Bundle传递的。使用putParacelable就行了



4、

AndroidRuntime(11108):

Caused by: java.lang.ClassNotFoundException:

com.example.demos_tabviewpger.

MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.demos_tabviewpger-2.apk]

解决:我想大家常常由于疏忽出现ClassNotFoundException的异常,这个异常在android开发中无非就是告诉你类没有找到,那么什么原因导致没找到呢?

事实上一般分为2种情况:

1、启动activity的时候,在AndroidManifest.xml 可能压根你就忘了加入一个activity,或者说activity的包名或者名字写错了,这个犯错几率非常高的

2、你的使用的class,是一个外部的JAR包。当在project中编译使用时,公布成APK并没有包括JAR文件,所以APK在运行的时候就找不到JAR文件,会报错。

所以一定在“Order and Export”里。勾选使用的jar包。切记!



5、

java.lang.IllegalStateException:

The application’s PagerAdapter changed the adapter’s

contents without calling PagerAdapter#notifyDataSetChanged!

Expected adapter item count: 0, found: 3 Pager id:

解决:

在初始化ViewPager时,应先给Adapter初始化内容后再将该adapter传给ViewPager,

假设不这样处理,在更新adapter的内容后,应该调用一下adapter的notifyDataSetChanged方法,

否则在ADT22以上使用会报The application’s PagerAdapter changed the adapter’s contents without calling PagerAdapter#notifyDataSetChanged的异常。

时间: 2024-09-30 14:37:02

bug集合及其解决方法的相关文章

数据库Bug集合及解决方法

1.在使用DataTable.select进行排序时,直接写DataRow[] drr = dt.Select("POSTPARID='" + node.Value.ToString() + "' order by  DISPINDEX ASC"); 这样写会报如题错误:“order”运算符后缺少操作数. 改成DataRow[] drr = dt.Select("POSTPARID='" + node.Value.ToString() + &qu

Android实际开发中的bug总结与解决方法(一)

                                                                             Android实际开发中的bug总结与解决方法(一) Android开发中有很多bug,我们是完全可以在线下避免的,不要等到线上报的BUG的再去修复.下面是我在实际开发中遇到过的bug和解决方法. BUG 1: java.lang.RuntimeException: Unable to start activity ComponentInfo

Monkey测试手机BUG重现及解决方法

1.1 Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常. 1.2 Monkey程序介绍1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar: 2) Monkey.jar程序是由一个名为"monkey"的Shell

使用C++自带库时遇到的Bug们及解决方法

每个问题的具体原因可能因平台和编译器的不同而异,这里仅记录个人的解决方案,仅供参考. x64, VS2019 使用的random_device时若报错'class std::random_device' has no member named 'generate',可以试试加上using namespace std;.不知道具体原因,但这样做确实不报错了.而且在我的电脑上是,VS Code报错,但VS上正常运行. 原文地址:https://www.cnblogs.com/saltedreed/p

[Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法

1.U3D经常莫名奇妙崩溃.   一般是由于空异常造成的,多多检查自己的引用是否空指针. 2.编码切换警告提示.   警告提示:Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings men

spark+hadoop+sqoop+hive平台bug解决方法

bug集锦 1. hadoop平台datanode无法启动: 原因: 由于多次hdfs namenode -format导致dfs/data/current/version中的cluserID与当前的cluserID不统一,通过查看hadoop/logs中的datanode日志文件查看到此错误. 解决方法: 1). 修改每台节点上的/dfs/current/version文件中的cluserID的值为当前的值(当前值可以通过hadoop/logs日志文件中的报错获得). 2). 每次format

IE6 Bug解决方法HACK汇总

1.终极方法:条件注释<!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--><!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本. <![endif]--><!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6). <![endif]--><!--[if IE 5.5]> 这段文字仅显示在 IE5.5. <![e

img标签下多余空白BUG解决方法

在进行页面的DIV CSS排版时,遇到IE6(当然有时Firefox下也会偶遇)浏览器中的图片元素img下出现多余空白的问题绝对是常见的 对于该问题的解决方法也是“见机行事”. 1.将图片转换为块级对象 即,设置img为“display:block;”.在本例中添加一组CSS代码:“#sub img {display:block;}”. 2.设置图片的垂直对齐方式 即设置图片的vertical-align属性为“top,text-top,bottom,text-bottom”也可以解决.如本例中

【转】 IE6 IE7 IE8 css bug兼容性解决方法总结归纳

1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的padding引 起,padding的上下值对li有影响,左右无影 响.所以只好笨手笨脚地把padding去掉,换成margin.这是能解决问题,但往往不是我们想要的结果,或许 还会引起其他不必要的怪现象. 现在终于发现解决这个问题的方法,其实很简单,既然是有ul引 起的,就设置