Android开发当中遇到的各种error以及解决方法

来源:互联网 发布:淘宝主动打招呼 编辑:程序博客网 时间:2024/04/30 14:08

2013-4-3 09:56:16:

Could not find class 'com.[packageName].NdComPlatformHandler$1', referenced from method com.[packageName].NdComPlatformHandler.<clinit>

91SDK的Library Project应用部正确引起的。

关于library project的解释如下:http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

解决方法:

项目目录 -> project.properties  -> android.library.reference.1=../../../../../../libs/NdComPlatformSDK_UI_android_20121121_3.2.3/SDK_lib/91SDK_LibProject
工程右键 -> Properties -> Android -> Library -> Add... -> 选择工程所在地



2013-4-3 10:48:24:

java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent
android 植入友盟/广告异常java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent
解决办法: ADT 18对引用的jar有要求,要求jar包要放到项目下的libs里才可以找到,否则apk不会包含该jar包。
D:\Developer\svn\workspace\trunk\BDMobile\libs\umeng_sdk_201303141927_analytics\libs\umeng_sdk.jar
Refresh项目,然后 Properties -> Libraries -> Add JARs... -> 选额自己的工程 -> libs -> umeng_sdk.jar


2013-4-7 9:45:49:

overlaps the location of another project

原因:eclipse的workspace下已经有该工程

解决方案:将工程目录放在非workspace下面,然后通过import引入源码,同时勾选copy to workspace,这样workspace就会创建一份副本进行开发



2013-4-7 9:46:05:

Failed to read the project description file (.project)

原因:


发现.project文件的容量为0KB,所以读取错误。

解决方法:

给.project文件添加内容即可:

<?xml version="1.0" encoding="UTF-8"?><projectDescription><name>ProjectName</name><comment></comment><projects></projects><buildSpec><buildCommand><name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name><arguments></arguments></buildCommand><buildCommand><name>com.android.ide.eclipse.adt.PreCompilerBuilder</name><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.jdt.core.javabuilder</name><arguments></arguments></buildCommand><buildCommand><name>com.android.ide.eclipse.adt.ApkBuilder</name><arguments></arguments></buildCommand></buildSpec><natures><nature>com.android.ide.eclipse.adt.AndroidNature</nature><nature>org.eclipse.jdt.core.javanature</nature></natures></projectDescription>
其中ProjectName是你的项目名称。

2013-4-17 10:29:20:

AndroidRuntime FATAL EXCEPTION: GLThread 12

AndroidRuntime java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

原因:

在对接SDK的时候,一个类当中如果需要执行一段和UI相关的代码,如弹出对话框或者Toast提示等等,那么就需要和UI Thread打交道。

((Activity)mContext).runOnUiThread(new Runnable(){    //TODO:your code}
这是一种最简便的方法,只需要在类的构造函数获取当前Activity的Context,然后就可以简单滴在类中调用一段和UI Thread相关的代码。


还有一种解决方法就是使用Android的Message机制,在主线程当中加入一个Handler,专门用来处理其他子线程发送过来的Message,这些Message会被发送到一个消息队列当中排队,通过Looper来进行选择对应的Handler来执行相应的操作,这些Handler都是主线程来执行代码的(在线程内是有序的),由于UI的更新都在主线程当中,因此就可以解决线程不安全的问题。


主线程会默认创建一个消息队列和Looper

而子线程是默认没有创建的,如果要在子线程中简历消息队列,那就在Looper.prepare()  Looper.loop();之间写代码


2013-4-19 12:10:26:

Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE

安装包容量过大,手机内存不足,删掉重新安装即可


2013-5-24 18:09:39:

系统找不到指定的路径。

调用:ndk-build.cmd的时候导致的,操作系统:windows 8

最后发现该脚本里的数据有问题:

set NDK_ROOT=%~dp0
set NDK_MAKE=%NDK_ROOT%\prebuilt\windows-x86_64\bin\make.exe

分别输出:

E:\dev\sdk\android-ndk-r8e\
E:\dev\sdk\android-ndk-r8e\\prebuilt\windows-x86_64\bin\make.exe

多了一个斜杠,我晕!


2013-7-24 10:28:58

NDK编译时发生

obj/local/armeabi/objs-debug/hello-jni/hello-jni.o.d:1: *** 多个目标匹配。 停止。
解决办法:把目录hello-jni下的libs和obj两个文件夹删除,重新编译即可。


2013-12-1 19:46:01

导入jar时发生

[2013-12-01 19:37:00 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/tencent/weibo/api/RequestAPI;
[2013-12-01 19:37:00 - WTJob] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/tencent/weibo/api/RequestAPI;

解决办法:把工程目录下的libs目录里的QWeiboSDK.jar删除,重新clean工程即可。



原创粉丝点击