Android开发遇到的Exception

来源:互联网 发布:淘宝如何设置自动发货 编辑:程序博客网 时间:2024/06/05 03:10
  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的时候写入

@Overridepublic 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