Android开发遇到的Exception

  1. 在使用BaseAdapter的问题
java.lang.IllegalArgumentException: The observer is null.
at android.database.Observable.unregisterObserver(Observable.java:64)
at android.widget.BaseAdapter.unregisterDataSetObserver(BaseAdapter.java:42)
at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2872)
at android.view.View.dispatchDetachedFromWindow(View.java:11908)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2647)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2645)
at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2685)
at android.view.ViewRootImpl.doDie(ViewRootImpl.java:4044)
at android.view.ViewRootImpl.die(ViewRootImpl.java:4027)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:375)
at android.view.WindowManagerImpl$CompatModeWrapper.removeViewImmediate(WindowManagerImpl.java:170)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3352)
at android.app.ActivityThread.access$1200(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4914)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)
at dalvik.system.NativeStart.main(Native Method)

解决方法,继承BaseAdapter的时候写入

@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
       super.unregisterDataSetObserver(observer);
   }
}

2.从网上新下载一个项目,导入到eclipse中运行时,报错:
java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager
解决方案:
一、右击项目->properties->Java Build Path->Order and Export,在需要引用的包前面打勾。
二、Project->Clean…
问题解决,重新运行后就没什么问题了


3.华为手机debug需要打开log开关
方法:
1、在拨号界面输入:##2846579## 进入测试菜单界面
2、Project Menu–后台设置–LOG设置
3、LOG开关–LOG打开 LOG级别设置–VERBOSE
4、Dump&Log– 全部选中
5、重启手机,重启Eclipse


4.未知异常

java.lang.UnsatisfiedLinkError: Couldn't load zbar from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.haigou.client-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.haigou.client-1, /vendor/lib, /system/lib]]]: findLibrary returned null
 at java.lang.Runtime.loadLibrary(Runtime.java:358)
 at java.lang.System.loadLibrary(System.java:526)
 at com.zbar.lib.ZbarManager.<clinit>(ZbarManager.java:15)
 at com.zbar.lib.decode.DecodeHandler.decode(DecodeHandler.java:56)
 at com.zbar.lib.decode.DecodeHandler.handleMessage(DecodeHandler.java:38)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:136)
 at com.zbar.lib.decode.DecodeThread.run(DecodeThread.java:44)

解决方式: .so文件拷贝到armeabi-v7a


5.未知异常
import com.sun.image.codec.jpeg.JPEGCodec不通过 找不到包
在Eclipse中处理图片,需要引入两个包:
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
报错:
Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library C:\Java\jre1.6.0_07\lib\rt.jar

此时解决办法:
Eclipse默认把这些受访问限制的API设成了ERROR。只要把Windows-Preferences-Java-Complicer-Errors/Warnings里面的Deprecated and restricted API中的Forbidden references(access rules)选为Warning就可以编译通过。


6.未知异常
Don’t call setOnClickListener for an AdapterView
不能再AdapterView不能设置onClickListener,否则会直接抛出异常


7.eclipse项目导入异常
1,右键项目名称 BuildPath —> Configure Build Paht…中,然后上面有几个选项卡找到 Libraries中出现红色叉号的包为路径错误的包。到classpath中修改相应包的当前路径。然后回到eclipse中F5刷新工程。
不行的话可以试试clean项目;
project—>clean
如果你的eclipse项目有红色叹号,而Libraries中没有出现红色叉号的包,我是这样做的。
1,先把eclipse转换到Markers视图,windows—->show view —->markers
会发现这些报错内容,
Archive for required library: ‘XXXXXXXX001’ in project ‘xxxxxxxxx’ cannot be read or is not a valid ZIP file
2,用记事本打开项目根目录的.classpath文件,找到“”这一行,删掉
保存,刷新后,这个报错就没有了,从而红色叹号也没有了。


8.eclipse打包时字符串多国语言处理
打包时字符串多国语言问题(Checks for incomplete translations where not all st
Android Lint Preference – ignore all


9.未知异常

java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{4278dfe8 V.E..... R.....ID 0,0-1248,288} not attached to window manager
 at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:370)
 at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:299)
 at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:84)
 at android.app.Dialog.dismissDialog(Dialog.java:329)
 at android.app.Dialog.dismiss(Dialog.java:312)
 at android.app.Dialog.cancel(Dialog.java:1114)
 at com.haigou.activity.MainActivity$WebHandler.handleMessage(MainActivity.java:964)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:136)
 at android.app.ActivityThread.main(ActivityThread.java:5034)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:515)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
 at dalvik.system.NativeStart.main(Native Method)

异步消息造成的问题


10.未知异常
Conversion to Dalvik format failed: Unable to execute dex:
两个包有内容重复或冲突之类,同一项目中多次引用或者多次导包导致冲突


11.未知异常
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE


选择你的应用,右键选择【run as】–【run configurations】–【target】–【Additional Emulator Command Line Options】,填写“-partition-size 256”


12.addview() 不执行removeView会报出异常,addView后,你要添加的view就一直存在添加view的容器中,不removeView不会有什么情况,是不过在你要想在addView上次的view之前必须先把removeView 掉,否则会提示你view已存在异常。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值