android开发遇到问题及错误解决

在我的电脑重装后,android开发软件也是重新安装,许多之前编写的项目都会出现Caused by: java.lang.ClassNotFoundException异常,都是找不到这个包。

解决方案:

错误1:

         Caused by: java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader

   1.将项目中libs下的android.support.v4获取其他的包先复制到另一个地方然后删掉

   2.并重新复制该包粘贴到libs下重新加载

   3.然后右击项目build path->configur build path ->orderand export 勾选android private  libraries 、android dependencies这两个选项,重新运行就可以,我的项目就是这样修改的能够正常运行。

 截图:

           

 

 

错误2:

        R文件不能自动编译xml文件的id属性等

解决:

        选择eclipse上部一行菜单栏project,勾选build automaticlly

 

错误3:

       SQLServer2005_SSMSEE_x64是无法安装上,出现一个错误框“安装程序在安装此软件包时遇到一个错误,这可能是此软件包有错,错误码是29506“然后进行回滚操作,安装失败

 

解决方案:

        在电脑任意位置新建 *.cmd命令文件,编辑内容为:

msiexec /i F:\Soft\SQLServer2005_SSMSEE_x64.msi;此处F:\*\*是自己数据库安装文件位置,改一下然后右击文件以管理员身份运行就可成功安装。

 

错误4:

                 java.net.SocketTimeoutException: Connection timed out :socket连接超时

解决:      

        从字面看是超时原因,然后搜索网上对超时异常的处理,之后测试多次还是不行,后来看到网友说socket连接错误,开启服务然后确认ip是否正确,是不是端口占用,主要问题存在于socket连接上,后来一一排错,原来我的服务器没开,因为写在一个项目,运行时老提示错误,不行运行,没想到是这个原因,后来添加了java应用程序,将服务端代码写在main方法里,开启服务,运行客户端,一下就能连接接收客户端请求。总结:在确认自己代码无误的时候,一定要转变思想从其他地方入手,我光纠结自己代码是不是哪里写错了,因为刚开始接触就只能想到代码哪里不对,要不是别人提醒还在找着呢,最终原来只是服务器没开,真是超级无语,真想一头撞墙上,呵呵,大家也要多从各个相关方面找答案。

错误截屏:

 

 

错误五:The connection to adb is down, and a severe error has occured.

  You must restart adb and Eclipse.
  Please ensure that adb is correctly located at 'D:\android-sdk-windows\platform-tools\adb.exe' and can be executed.

android模拟器一直工作的好好的,却突然提示上面的信息;

 解决:

        重新启动eclipse及adb,也没有效果。可能是Android模拟器端口被占用了,然后重新启动eclipse,第一个把android模拟器启动起来,运行项目就可以了,对自己挺适用的,呵呵,遇到问题越多解决问题能力也在慢慢提高,不要灰心。

 

错误六:java.lang.ArrayIndexOutOfBoundsException

用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。private boolean[] state=new boolean[]{}报错。

解决

         呵呵原来自己忘了初始化,在{ }里面,private boolean[] state=new boolean[]{false,false,false,。。。}或者可以只声明数组长度private boolean[] state=new boolean[8];在下面的程序中就可以使用索引范围内的索引,state[5]=true;

 

错误七:ListView中含有button、checkbox等组件listview.setOnItemClickListener没反应问题。

listView控件中自定义了item项控件,里面添加了Textview,Button,CheckBox等组件,问题出现了,ListView控件中的onItemClickListener事件监听不到,经过多次测试之后,发现是由于添加CheckBox的原因,把它改为TextView之后便没问题,具体原因应该是checkbox.click监听方法和listview的itemclick方法冲突,从网上找到了解决办法, 当我们使用listView嵌套button或者其它clickable控件时会出现listView的onitemClick事件不响应的问题。我们需要在item的xml文件中的根布局中加上一句android:descendantFocusability="blocksDescendants" 很多时候我们需要复杂结构的ListView,因此我们需要监听其中的不同控件的响应,这个可以通过自定义适配器来完成。在ListView三种适配器当中,最受青睐的就是SimpleAdapter适配器,它的扩展性很强,可以将ListView中每一项都使用自定义布局,插入N多组件;但是SimpleAdapter也有弱点,那就是当ListView中每一项有Button、CheckBox等这些有事件的组件,我们想监听它们就必须自定义适配器!

如何写一个自定义通用适配器类!SimpleAdapter 构造的时候,需要五个参数来进行映射数据到ListView中,自定义通用适配器其实也就是实现系统SimpleAdapter的一个自定义版借鉴学习网址:http://flyingandroid.diandian.com/post/2012-03-23/18788455

解决:

          对于我的项目只需要这样改就可以触发itemclick事件监听

                          <CheckBox
                                          android:id="@+id/check"
                                          android:layout_width="wrap_content"
                                          android:layout_height="wrap_content"
                                          android:focusable="false"//取消焦点,listview就可以监听itemclick事件
                                          android:checked="false" >//默认为未选中状态
                          </CheckBox>
               android:focusable="false" 解决listview的itemclick不能点击问题,因为焦点被复选框所占,它的优先度比listview高

 

错误八:listview中项带有checkbox,但是checkbox 选中之后滑动listview滚动条再回到之前的视图,之前选中的复选框状态改变为没有选中。

 

解决:

在获取listview的数据列表定义数组Map<Integer, Boolean>  state;来记录checkbox的状态,在自定义的适配器的getView()方法里的checkbox的setOnCheckedChangeListener复选框状态变化监听事件中添加

 .setOnCheckedChangeListener(new OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(CompoundButton buttonView,
        boolean isChecked) {

                                     state.put(position, isChecked);//记录变化的checkbox状态***************************处理

         }

}

监听事件后在最后加上重新设置复选框的状态。

public View getView(final int position, View convertView,
    ViewGroup parent) {

   convertView = mInflater.inflate(layoutID, null);
    // 查找listview中checkbox控件
    CheckBox checkBox = (CheckBox) convertView .findViewById(***);
    checkBox .setOnCheckedChangeListener(******);
    checkBox.setChecked(state.get(position));//加上这句,使checkbox状态不随滚动而改变,保存用户最终选择状态,否则列表滚动条滚动时,之前选中的复选框都改为默认状态
   return convertView;
  }

 

 

先写这,其他错误发现再添加。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值