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使用AttributeSet自定义控件的方法
  2. 让Android不播放关机动画,而是显示一个关机进度条的方法
  3. android下拉菜单spinner的使用方法
  4. Android第五期 - 更新自己的apk本地与网络两种方法
  5. Android HandlerThread使用方法
  6. android-2.2以下杀进程方法:restartPackage();
  7. 【Android 开发】:UI控件之拖动条控件 SeekBar的使用方法
  8. Android NullPointerException解决方法
  9. 【原创】Android锁定横竖屏、splash,全屏、去除标题的方法

随机推荐

  1. Android压缩
  2. 代码中如何设置TextView为不可见
  3. android tools命名空间
  4. android 隐藏ListView滚动条
  5. Android桌面小部件实例 桌面小时钟
  6. android解析xml文件 Android(安卓)DOM解
  7. android布局属性详解
  8. android 事件处理机制
  9. Android中activity触摸操作dispatchTouch
  10. Android(安卓)boot process stub