Androidの异常总结

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 reference
	at 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 ,导致的。

你可能感兴趣的:(android,异常)