Eclipse的常见使用错误及编译错误
http://blog.csdn.net/zhandoushi1982/article/details/8049404
(1)导入工程时出现:Error generating final archive: Debug Certificate
这样的编译错误是由于新版的Android SDK调试key有1年的试用期限制,如果当年电脑的Android SDK安装了一年后会出现这样的问题,解决的方法只需要删除早期的key文件即可,系统默认的key文件在Eclipse的Window菜单的Preferences => Android => Build菜单下其中Default debug keystore可以看到。
比如当前使用的Windows XP系统下为可能为 C:\Documents and Settings\用户名\.android\debug.keystore,只需要删除debug.keystore文件即可,Eclipse的ADT插件会在下次编译时自动生成一个调试版的密钥使用期限仍然为1年,但手机上一定别忘了删除老版本的程序,否则会提示Re-installation failed due to different application signatures这样的签名错误。
(2)IMPORT工程时出现:Select at least one project
这个错误出现在import一个工程的时候,选择select all的时候提示有个同名工程。这个错误的原因是Eclipse工具在后台打开了一个同名的工程,将它关掉即可。方法是:windows->show view->project explorer。
(3)建立AVD时出现:Unable to find a \’userdata.img\’ file for ABI armeabi to copy into the AVD folder
原因是Android SDK Manager没安装完全,就是少安装了ARM EABI V7A system image,安装上就好了。
(4)点击打开ECLIPSE时出现一个大的提示画面,有JVM EXIT CODE = -1,还有什么要求的JAVA版本号提示。原因很奇怪,当我把JAVA版本装成1.5之后,仍然会提示要求1.5的版本;当我装成1.6之后,把eclipse.ini的最后一句-Xmx1024m改成-Xmx512m,就可以正常打开并导入安卓工程了。
(5)用ECLIPSE的DDMS连接目前平台调试时,PUSH内容失败,提示只读系统,使用adb remount即可。
(6)用ECLIPSE的DDMS连接目前平台调试时,PUSH内容失败,提示Out of memory,方法如下:use the command first: $emulator -avd youravdname -partition-size 128 。Then the problem maybe resolved.
(7)在DDMS中调试时,拷出拷入文件时,出现错误:Failed to pull selection 或者Failed to push the item(s)。重新连接虚拟机试试。
(8)import一个工程时,出现:Project has no default.properties file! Edit the project properties to set one.那我们怎么解决这个错误呢?有两个方法:1、到其他工程里把这个default.properties文件拷贝过来直接用(这时候如果发现工程还是有错误的话就把工程重新导入一下,一般可以解决的);2、还有一个超级简单的方法哈,那就是把project.properties文件重命名一下就改成default.properties名称就OK。
(9)当把一个CODE工程拷贝入workspace后,import这个工程时,出现以下的错误提示:
提示overlap,则只要勾选下方的“copy projects into workspace”即可解决。
(10)运行一个载入的工程时,出现:Unable to resolve target \’android-12\’的提示,则说明该工程建立时的API版本跟当前ECLIPSE中AVD带的版本不一致,解决方法就是:把工程中的default.properties的内容# Project target. target=android-8的值改成一个支持的API版本,刷新后就可以了。之后,也可以在工程浏览窗口中看见载入的安卓API包。
(11)编译工程时,如果提示对话框“java heap”的问题,需要修改eclipse.ini中分配内存的大小,这种情况也会出现在添加了某些自定义jar之后出现。如果修改了eclipse.ini,可能会导致启动eclipse提示启动VM异常,这时确保在文件开头有VM路径:
-vm
C:\Program Files\Java\jdk1.7.0_05\bin\javaw.exe
===============================================编译及运行错误===========================
(1)一运行APK时,就出现异常退出,LOGCAT提示“java.lang.VerifyError”。
这种一般反映是jar错误,说重加载jar后就好。后来我在该错误提示的前面部分发现提示一些类有问题,在工程中重新import这些被重写的类(不用libs的jar中的类)就好了。
(2)运行apk时提示“Syntax error on token(s), misplaced construct(s)”,是说构造函数有语法问题。
(3)编辑JAVA文件出现“the public type xxx must be defined in its own file .”,原因是:作为public 类应该和文件名一致,源文件中公关类名要与文件名相同。一个文件里只能有一个public类。如果仅仅是新加一个本文件中要用到的类,不加public就行,作用范围就是当前文件。
(4) 如果某个安卓工程需要用到外部导入的jar类,在工程配置中选择“java build path”-》“librarys”页面-》“add library”-》“user library”,在弹出页面的右边选择“user libraries”-》“new”,输入想要的包名字即可(记得勾选下面的system library(add to the boot class path),否则出现编译错误Conversion to Dalvik format failed);之后就可以把jars添加到自定义的文件夹中,方法是:在“librarys”页面中激活刚建的包名-》“edit”,在“preference”页面中选择“add jars”就可以了。要是想把不用的jar删掉,点击“edit”按钮进行编辑。在实际使用中,如果有必要调节库的优先级的话,还需要点击“order and export”页面,用up或者down调整库的优先级。
(5)编译工程出现错误DEX提示:在将ADT和SDK Tool升级到最新(分别是21.1和16.0.1)之后,编译工程在控制台会出现:
[2013-02-22 09:54:08 – Dex Loader] Unable to execute dex: Cannot merge new index 68664 into a non-jumbo instruction!
[2013-02-22 09:54:08 – com.konkagene.smartstay.SmartStay] Conversion to Dalvik format failed: Unable to execute dex: Cannot merge new index 68664 into a non-jumbo instruction!
很多人都会遇到这个问题,只是错误信息中的数字不同而已。在网上找到相应解决方法是:可以在工程的project.properties里添加一行dex.force.jumbo=true ,clean再build一下就没问题了。实验后确认有效,解决了编译错误问题。
但是产生的APK在某些机器上不能安装(Installation error: INSTALL_FAILED_DEXOPT),针对这个问题的一个可能解释是:最新的ADT和SDK Tool在将jar转化成dex的时候,某些因素导致不能通过验证,所以安装失败。
(6)通过虚拟机运行一个应用时,出现:emulator: ERROR: Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration.解决方法是:Android Virtual Device Manager -> delete AVD -> new AVD,重新创建个AVD,解决。
参考原文:http://www.189works.com/article-40450-1.html
参考原文:http://hi.baidu.com/kaisep/item/2723860c05b9777fbfe97e8c
参考原文:http://blog.csdn.net/soliuyong/article/details/6455734
参考原文:http://blog.csdn.net/itmyhome/article/details/7010547
参考原文:http://bbs.csdn.net/topics/360095111?page=1#post-393430875
参考原文:http://zhidao.baidu.com/question/145236382.html
参考原文:http://blog.csdn.net/asdf39877/article/details/8198881
参考原文:http://blog.sina.com.cn/s/blog_70e6ed3a01013afx.html
参考原文:http://www.cnblogs.com/frydsh/archive/2013/02/20/2918969.html