我似乎已经解决了即时编译错误,但是会更深入地了解并且在StackExchange上找不到任何东西,或者在Googling上找到直接适用的错误消息。
现在已经使用Eclipse的Android Development Kit插件只用了几个星期了。我知道Android只使用Java 1.5的语法,并怀疑这可能是我的问题的线索,这只是在我添加了Debug.startMethodTracing("filename.trace");
并添加了WRITE_EXTERNAL_STORAGE
使用权限后才发生的。
成功编译并运行简单(hello world style)应用程序,然后突然间:bam !!
全新的错误讯息:
"Build path specifies execution environment JavaSE-1.6. There are no JREs installed in the workspace that are strictly compatible with this environment."
当我检查我的应用程序的Java Build路径时:
Right click project name > Properties > Java Build Path > Libraries
只有四件物品: 1)导入的jar文件库(用于API) 2)Android 4.4.2 3)Android依赖项 4)Android私人图书馆
我似乎通过遵循这些非Android特定说明来解决问题:
基本上说:
'Add Library" > 'JRE System Library" > "Workspace default JRE (jre7)
现在我的代码似乎再次编译。但是,我对我为什么有必要这样做的理解水平感到有点不舒服(我刚检查过,Jdk1.7仍然在我的系统路径中,之前似乎工作正常)。在为Android开发时通常是否需要这样做?
换句话说,使用ADK在库部分中明确列出JRE是否正常? 使用JRE 1.7而不是旧版本有什么问题吗?
我也阅读了这些说明,但同样,答案并非针对Android: Warning - Build path specifies execution environment J2SE-1.4
答案 0 :(得分:1)
警告告诉您,即使您的代码设置为1.6合规级别,您也没有任何实际的1.6版JDK可用。实际的缺陷是,由于唯一可用的JRE运行时是1.7运行时,你可能会使用在1.7中添加的一些类或方法:你的代码仍然可以正常编译,但是你得到NoSuchMethodError
或者如果它是在1.6运行时运行的话。
实际上,由于您的目标是Android,因此您可能不必担心;无论如何,ADK将重新编译您的代码,并且任何此类错误都应立即显示。如果您确实希望警告消失,只需在1.7。旁边安装1.6 JDK。