Androidの常见异常总结(一)

1. 手机内存不足,有可能出现的问题

[2013-03-13 17:32:24 - DBtest] Installing DBtest.apk...
[2013-03-13 17:32:24 - DBtest] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
[2013-03-13 17:32:24 - DBtest] Please check logcat output for more details.
[2013-03-13 17:32:24 - DBtest] Launch canceled!
[2013-03-13 17:32:24 - DBtest] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
[2013-03-13 17:32:24 - DBtest] Please check logcat output for more details.
[2013-03-13 17:32:24 - DBtest] Launch canceled!
这是手机内存不足导致的。需要删除部分手机中安装的软件

2.AndroidMainifest.xml找不到activity类

ERROR/AndroidRuntime(483): android.content.ActivityNotFoundException:
Unable to find explicit activity class { org.example.sudoku/android.provider.Contacts$Settings};
have you declared this activity in your AndroidManifest.xml
解决办法:在AndroidMainifest.xml中增加activity的申明,如:<activity android:name=".xxxActivity" ></activity>

3.无法使用网络:Permission denied(maybe missing internet permission)

解决办法:在AndroidMainifest.xml中增加允许使用网络选项(在</application>结束标签之后>):
<uses-permission android:name="android.permission.INTERNET" />
其他的使用权限,也应该在要使用时到AndroidMainifest.xml添加权限,比如:我们在开发手机蓝牙功能时,就必须添加相应的蓝牙权限。
http://bbs.cloudin.so/article-153-1.html

4. Field requires API level 5 (current min is 1)

解决办法:应该在AndroidManifest.xml中增加API级别
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="5" />

5 . res/layout/Mylayout.xml: Invalid file name: must contain only [a-z0-9_.]

意思是 文件名必须是"小写字母"," 0~9"的数字,下划线" -" 和"." filename不合法必须是按要求的不能出现大写的。

6. Caused by: android.view.WindowManager$BadTokenException:

Unable to add window android.view.ViewRoot$W@45fac458 -- permission denied for this window type
解决方法:用于添加悬浮窗,在主配置文件中添加:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />

7. ArrayAdapter: You must supply a resource ID for a TextView

错误使用: ListAdapter adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.activity_main_item,itemview);
需要给每个item对应的Textview,添加id。
解决办法: ListAdapter adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.activity_main_item, R.id.main_lv_testview,itemview);

8. Failed to install ***.apk on device '019417a3': Unable to open sync connection!解决方法

当控制台出现:
Failed to install ***.apk on device '019417a3': Unable to open sync connection!
java.io.IOException: Unable to open sync connection!
Launch canceled!
或者
Uploading ****.apk onto device '1000b1eda2c2'
Failed to install ****.apk on device '1000b1eda2c2': adb rejected install command with: device offline
com.android.ddmlib.AdbCommandRejectedException: device offline
Launch canceled!
解决方法:
第一种:重启电脑,之后把手机查到电脑上,启动eclipse
第二种:手机-设置-应用程序-开发-usb调试打开再关闭一次
第三种:安装豌豆夹或者360手机精灵在电脑上,用他们连接手机,安装驱动。
第四种:在cmd下Try "adb kill-server" and then "adb start-server"

9. Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

都知道,Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。
Java代码
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
这样就可以再新的task里面启动这个Activity了

10. Caused by: java.lang.InstantiationException: can't instantiate class com.example.smsreceivedemo.MainActivity$SmsReciver; no empty constructor

显然出现了无构造方法解释,同时可以将此内部类SmsReciver定义为static, 应该解决了

11. 运行androd app ,弹框出现 android library projects cannot be launched

Android Library Project 是被引用的,不是独立项目,不能单独启动运行,你需要在 Android 项目的属性中的 Android 分类下面把 "Is Library" 框去掉打勾的,之后它就是一个普通的 Android Application Project 了。

解决方法:http://jingyan.baidu.com/article/636f38bb3df187d6b9461048.html


12. listview 运行时候,出现空指针
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setDrawingCacheBackgroundColor(int)' on a null object referenceat android.widget.AbsListView.obtainView(AbsListView.java:2497)at android.widget.ListView.measureHeightOfChildren(ListView.java:1286)at android.widget.ListView.onMeasure(ListView.java:1194)at com.sjk.client.view.ShopcartListView.onMeasure(ShopcartListView.java:26)at android.view.View.measure(View.java:17915)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698)at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692)at android.widget.LinearLayout.measureVertical(LinearLayout.java:760)at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)at android.view.View.measure(View.java:17915)
从网上有人分析跟listview有关,但是我也纠结很久,最终问题是出现在adapter 上 . 先看 布局是否有问题,对应组件id是否 正确写入,然后看下 getView()使用是否有误,我的错误出现在一下: @Override
public View getView(final int position, View convertView,ViewGroup parent) {
view= LayoutInflater.from(context).inflate(R.layout.item_shopcart_goods_layout, null); 布局加载时候重新用的view ,而不是参数 convertView ,导致的。

更多相关文章

  1. Android中软键盘使用总结(一)
  2. Android使用AttributeSet自定义控件的方法
  3. android 里使用Socket进行发送消息案例
  4. android模块化开发
  5. Android——TabHost(标签容器)相关知识总结贴
  6. Android底部导航栏实现(四)之TabLayout+ViewPager
  7. Android——BitMap(位图)相关知识总结贴
  8. android 一键锁屏实现
  9. android下拉菜单spinner的使用方法

随机推荐

  1. Android游戏设计之-------游戏音效的播放
  2. [置顶] Android(安卓)ButterKnife
  3. android 快速开发(三)巧用公共标题栏:避免每
  4. android webview 介绍
  5. Windows7 Android(安卓)开发环境搭建
  6. Android(安卓)adb启动任意app的几种方式
  7. Retrofit
  8. Android:Activity(九):Fragment管理与Fra
  9. android8.1 屏蔽系统通知弹窗
  10. 关于overridePendingTransition效果在1.6