1.Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.ButtonClassCastException:类型转换错误,TextView不能转换位Button,原因是我在findViewById的时候将TextView的一个声明成button,还有就是讲findViewById前面的(TextView)写成(Button)
2.Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child根据报错信息提示,ScrollView控件下面必须有且只有一个子布局,不要将ScrollView当ListView等布局来直接在其中编写控件,而要先在ScrollView控件中写入LinearLayout,然后再将其他子控件写入到LinearLayout;
3.java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.原因是我的ListView需要addHeadView();但是我是在setAdapter()方法之后才addHeadView的,但奇怪的是,这种做法在4.0版本上都没有报错,在4.0版本上面报错;
4.我在写一个布局文件的时候需要将一个按钮的监听器OnClickListener在按钮点击之后重新设置(也就是在OnClickListener监听器响应之后就改变这个监听器),在Android4.0上面这个更改过的OnClickListener在响应完一次后,又恢复到了原来的OnClickListern监听器,但是在2.3则维持了改变后的OnCLickListener;
5.Invalid project description
今天我在导入一个Library项目时,出现了这个提示,搜索的结果是项目中.project文件中name可能是因为你的工程名不同而造成的我检查后并没有发现不同,后来想到导入Library的项目时,Library项目和导入Library的项目需要处在同一级目录下,于是我将Library复制到workspace,这样就好了;
今天又遇到同样的问题,度娘和谷哥都是说项目中的.project中的name和项目名字不一样,但我的确实不是这个问题,后来看一篇博文说的是因为AndroidManifest.xml文件版本不同造成的,解决办法是将项目复制到其他地方再导入即可,我将项目从workspace中复制到桌面导入,果然可以了
6.Migrate Android Code
这是我在从svn下载一个项目时遇到的,搜索的结果基本是将代码中的switch cases 改成 if else的方式,在eclipse中可以使用 ctrl+1快捷方式切换,具体原因我还不清楚,如果你知道原因,请回复或者发我邮件,谢谢;
7.Eclispe无法识别Android SDK的目录
可以尝试升级adt来解决这个问题
8.最新版的adt无法创建R文件
打开Android SDK Manager,勾选第一个目录中的Anroid SDK Build-tools并下载安装即可
9.java.lang.NullPointerException
JAVA开发和Android开发最常遇到的异常(没有之一),每一个学JAVA的人都对他恨之入骨,由于其可能导致的原因众多,我就讲讲我遇到的情况,我是因为用map获取一个不存在的key导致爆出空指针异常
10.java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent
android 植入友盟/广告异常, ADT18对引用的jar有要求,要求jar包要放到项目下的libs里才可以找到,否则apk不会包含该jar包。
11.ble to execute dex: Multiple dex files define Landroid/support/v4/app/ActivityCompatHoneycomb;
libs下的android-support-v4.jar重复,将android-support-v4.jar删除即可
12.com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Unable to read C:\AndroidManifest.xml: java.io.FileNotFoundException: C:\AndroidManifest.xml (系统找不到指定的文件。)
1、
Win7 下
进入:C:\Users\(当前用户)\.android
删除:debug.keystore,ddms.cfg 二文件
xp
进入:C:\Documents and Settings\Administrator\.android
删除:debug.keystore,ddms.cfg 二文件
2、
重启 eclipse
13.[2013-06-04 09:56:29 - xxx] Re-installation failed due to different application signatures.[2013-06-04 09:56:29 - xxx] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2013-06-04 09:56:29 - xxx] Please execute 'adb uninstall com.xxxx.xxx' in a shell.
[2013-06-04 09:56:29 - xxx] Launch canceled!
原因是手机或者模拟器里面装了已经发布的带有自己签名的apk了,但是项目开发中用的是自带的模拟debug证书,解决办法就是英文提示所说的,删除模拟器或手机里面已经安装过得项目apk,然后再run一下项目即可
14.The library 'android_xxxxxxxxx.jar' contains native libraries that will not run on the device.
在网上搜索的方法不能解决我的问题,最后在stackoverflow发现了一个解决办法,在Eclipse上面设置,选择windows——preferences——android——build,取消勾选改设置页面Build Setting的第一个和第二个复选框即可
如图所示: <ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun;">
15.java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent
办添加友盟sdk出现的错误,解决办法是右键项目,选择“Properties”,然后点击Java Builde Path——Order and Export,将未勾选的jar包复选框勾选确定即可
如图所示: <ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun;">
16.LogCat无法输出日志信息
将LogCat关掉重新打开即可,点击LogCat右边的叉号即可关闭LogCat,然后点击Windows——Show View,看看有没有LogCat,有的话就选择,LogCat就会弹出,没有的话,点击other,在弹出框中点击Android文件夹,选择LogCat即可
如果重启LogCat还不行的话,可以重启Eclipse
17.java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:781)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:649)
at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42)
at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577)
原因是打开了两个Eclipse,关掉其中的一个即可
18.Failed to allocate memory: 8 This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
原因是使用的模拟器的分辨率太高了,已经超出了你电脑实际分辨率的尺寸,我创建的模拟器是pad,但是它的宽度已经超过了我电脑的实际分辨率,所以出现了这个问题。
19.sun.misc.BASE64Encoder无法导入这个方法
按说是sun的方法,jdk应该直接可以用的,但其实这个jar是jre/lib/rt.jar,我们需要右键项目->属性->java bulid path->在Libraries选项下点击jre System Library->access rules->resolution,在弹出的框里面上面选择accessible,下面填上** ,然后点击确定即可,还有就是其实不推荐使用java自带的base64方法,大家在实际项目中可以去使用apache的base64方法。
20.升级了ADT22之后报java.lang.NoClassDefFoundError错误
右键项目名称-->>Build Path-->>Configure Build Path-->>在Order and Export中选中Android Private Libraries-->>OK
最后点击Project-->>clean一下当前项目就ok了.
(如果还是没有成功的话,就选中Order and Export中所有的, 然后再clean一下.)
21.腾讯微博分享更改REDIRECT_URI出错(无法更改REDIRECT_URI)
学习腾讯微博的demo,由于使用了Library库,所以讲APP_KEY、APP_KEY_SEC和REDIRECT_URI都填入到了AndroidSDK项目的src——config——config.properties中,运行一下后报错,返回信息是errorcode:10015,这是因为我填的REDIRECT_URI不对,然后我将原路径的REDIRECT_URI改掉了,但是运行之后还是原来的错误,后来我将APP_KEY、APP_KEY_SEC和REDIRECT_URI全部换成同事申请可用的,但是在我这里还是一开始的错误,我怀疑可能是bin目录有问题,但是clean之后运行还是不行,后来发现在demo项目的Android Private Libraries下面有4个jar包,其中3个是腾讯微博所需要的,在Android_SDK.jar下面有同样的config.properties文件,里面的APP_KEY、APP_KEY_SEC和REDIRECT_URI是旧的,我的解决办法就是把所有的demo中的libs中的jar全部删除,然后直接引用libraries
22.Eclipse运行项目安装时出现:Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
这个错误的字面意思就是:“安装失败,内存不足”,如果是真机出现这种情况,将手机中的app删掉几个就可以了,如果是模拟器出现这个情况,网上的答案是使用命令行:emulator -avd MyAndroid -partition-size 120
23.今天在运行一个项目的时候出现了这个问题:Caused by: java.lang.ClassNotFoundException: android.support.v4.ViewPager
一般情况下,出现这种情况下都是因为项目中缺少android-support-v4.jar或者没有引用这个jar包引起的,但是当我在项目中新疆libs目录,并拷贝android-support-v4.jar包到libs引用之后,这个问题还是不能解决,最后我在stackoverflow上面找到了解决办法:右键选择项目Project->Properties->Java Build Path than select Order and export,然后点击右边的TOP按钮,将android-support-v4.jar或其所在的libraries置顶,最后clean一下项目即可运行
24.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()方法造成的,因为使用Context的startActivity方法需要开启一个新的task,增加intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);即可。
25.这是最经一段时间我在windows平台打包常见的一个错误(adt升级为22之后),困扰了我很久,终于找到了解决办法
<ignore_js_op style="word-wrap: break-word;"> 控制台提示错误为:[2013-07-12 10:46:15 - xxxx] Warning: org.apache.commons.httpclient.ChunkedInputStream: can't find referenced class org.apache.commons.logging.LogFactory 。。。。
解决办法是在项目中的proguard-project.txt文件中添加:-ignorewarnings和-libraryjars libs/xx.jar,记得将libs的所有jar包都按照这样的格式写
<ignore_js_op style="word-wrap: break-word;">
最后就可以正常打包了
26:java.io.IOException: Can't read [C:\Users\admin\Desktop\xxxx\libs\comments-httpclient-3.0.1.jar] (No such file or directory)
这个错误也是在打包的时候发生的,如同字面意义上面说的一样,就是没有找到comments-httpclient-3.0.1.jar这个jar,可能是项目中没有这个文件,我遇到这个问题是因为我在proguard-project.txt添加-libraryjars libs/comments-httpclient-3.0.1.jar时将jar包的名字写错了,所以导致了这个问题
解决办法就是在proguard-project.txt中将jar包名更正即可正常打包
27.Failed to create the Java Virtual Machine
<ignore_js_op style="word-wrap: break-word;">
原因是本机内存不够,而eclipse方法区(Perm Gen)占用内存太多的缘故解决办法是找到eclipse的解压目录中的eclipse.ini文件打开编辑,
如下图
<ignore_js_op style="word-wrap: break-word;"> 另一个办法是在eclipse.ini文件中增加jvm的完整路径,
-vm
D:\Java\jdk1.6.0_29\bin\javaw.exe
注意这个参数的放置位置,我放在文件最下面时还是不行,放在-vmargs参数上面就可以了。
详情请看:http://blog.csdn.net/yuanfei_1988/article/details/5919168
28.Can't bind to local 8700 for debugger
在运行项目的时候,控制台出现如上错误,应该是端口问题,在Stack Ovleflow上找到解决办法是:打开Eclipse——Windows——Preferences——Android——DDMS;
然后将Base local debugger port中的8600改为8601,然后选中Use ADBHOST,在ADBHOST value中填127.0.0.1
29.R文件报错,其中有一个String资源报错
写完demo之后发现R文件报错,clean了之后还是报错,然后打开R.java查看,发现只有一行报错,然后我仔细数了一下String资源有17个,再打开自己的value/string.xml文件,发现自己的只有16个,最后一行是只有<string name=""></string>,未定义,所以有问题,删掉这一行就行了
30.获取sqlite数据库某一字段"id"只能读取到第一行
我在写一个数据库查询方法的时候出现了只能读取一个第一个数据的情况,通过debug和对比其他语句发现,原来的在Cursor cursor = db.rawQuery(sql,null),之后没有使用while(cursor.moveToNext()){}方法来遍历获取cursor中的数据,而是写成了if(cursor.moveToNext()){}的方法,if语句只会执行一次,获取第一条数据,然后就执行下面的语句了,而while()语句只要符合括号中的条件就会继续执行。
31.启动PopupWindow报NullPointerException空指针异常
代码例子:
上面的代码是一个PopupWindow的创建过程,但是我们在button的点击事件中运行这段代码却会报空指针,原因在最后一行,showAtLocation(parent, gravity, x, y)方法出了问题,而报NullPointerException的地方正是parent即findViewById(R.id.main)为空,因为这里根本没有获得PopupWindow的parent,第二行代码的View获取了xml布局文件,parent应该在view中实例化,正确的代码应该是mPopupWindow.showAtLocation(view.findViewById(R.id.main), Gravity.RIGHT|Gravity.CENTER, 0, 0);
相关推荐
标题中的“解决axis2-CodegenWizardPluginBUG- java.lang.reflect.InvocationTargetException”指的是在使用Apache Axis2的CodegenWizardPlugin工具时遇到的一个错误。这个工具是Axis2框架的一部分,用于自动生成...
在遇到ServiceException时,开发者还应该考虑服务依赖库是否已经更新到最新版本。过时的库可能会导致各种兼容性问题或已知的bug,更新到最新版本往往可以解决这些问题。在代码层面,处理ServiceException通常需要...
在编写文件处理程序时,经常会遇到EOFException,这是一种在文件结束时可能抛出的异常。解决EOFException的关键在于正确地处理文件读取逻辑,并在读取过程中添加必要的异常处理机制。Java作为一种广泛使用的编程语言...
ParseException是当程序在进行文本或数据解析的过程中,由于格式错误而抛出...ParseException是一种常见的异常,其解决方法多种多样,关键在于合理使用异常处理机制,并结合项目实际情况,采取灵活而有效的策略来应对。
使用场景及目标:开发者在日常编码过程中遇到各种异常问题时可以参考本文档提供的具体解决方案和建议,快速定位并解决问题。同时适用于教学培训和技术分享,增进团队成员之间的交流与合作。 其他说明:为了进一步...
ArithmeticException是在Java程序运行时进行算术运算过程中,遇到问题时抛出的一种运行时异常。常见的问题包括除数为零、数值溢出等。要解决ArithmeticException异常,可以采取以下策略: 首先,一种常见的处理方式...
解决`UnexpectedException`不仅仅依赖于捕获和处理异常,还需要对代码进行改进,以及在生产环境中实施详尽的日志记录和监控措施。这样一套综合的解决方案能够帮助开发者在面对异常时,更加从容和高效地解决问题,...
解决EOFException的关键在于正确处理文件读取结束的情况。首先,需要理解每种读取方式的特性。例如,BufferedReader的readLine()方法在到达文件末尾时会返回null,这就是一个明确的信号来告诉程序已经没有更多数据可...
`DOMException`是当DOM操作遇到错误时抛出的异常,常见原因包括尝试修改只读属性、在错误的上下文调用方法等。解决这些问题通常需要检查错误发生的上下文和调用栈,并进行相应的修复。 首先,理解错误类型是关键...
ParseException是在处理字符串解析任务时经常遇到的一种异常类型,其主要在文本解析、日期和时间解析等场合中因输入格式不符、数据格式有误等原因而引发。在Java编程语言中,`ParseException`是由`java.text.Parse...
更新或修复非托管代码可能是解决SEHException问题的唯一方法。 知识点七:持续学习与资源获取 遇到具体问题时,应提供详细的背景信息,以便获取更准确的帮助。需要持续学习和探索相关的知识资源,这有助于处理类似...
由于DomainException的产生通常与特定的业务逻辑和上下文紧密相关,因此解决此类异常并没有一劳永逸的方法,而是需要根据其产生的具体原因来制定解决方案。解决DomainException的方法通常涉及对代码的审查和调整,以...
在实际开发过程中,需要结合项目具体需求、系统环境以及专业背景知识,通过多种技术手段和方法来综合解决问题。在遇到此类异常时,除了编写合适的异常处理代码,还需仔细研究问题背景,并在必要时寻求外部支持。
nested exception is java.lang.NoClassDefFoundError" 提到了Java中处理处理器(Handler)时遇到的问题,这通常与Spring MVC或类似框架有关。在这种框架中,Handler是用于处理HTTP请求的对象,当出现上述错误时,...
处理RangeException的最佳方法是根据具体情况来选择解决方案。在代码访问数组或集合之前,检查索引值是否在有效范围内是最基本的方法。而try-catch异常处理机制则提供了一种灵活的方式来应对和处理各种异常情况。...
解决这类问题的基本步骤包括检查操作码正确性、更新依赖库或框架、查看异常堆栈信息以及进行必要的代码修改。 首先,检查操作码是否正确是解决此类问题的第一步。操作码必须在当前环境下被支持,且无拼写错误。其次...