作为对安卓系统的研究和测试的一部分,我目前正在尝试获得安卓系统开发工具包中的安卓库(特别是android.database.sqlite)的覆盖面。我正在遵循this关于使用Emma的指南,希望将Emma作为一个覆盖范围的工具。然而,仅仅遵循本指南并运行示例程序似乎并不能很好地工作。我能跑
java -cp out Main很好,但是当我试着跑的时候
java emmarun -cp out Main它给出了以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: emmarun
Caused by: java.lang.ClassNotFoundException: emmarun
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: emmarun. Program will exit.也许这只是我在和Emma的一个问题上缺乏经验,但有人能解释一下我应该怎么做吗?顺便说一下,我目前将emma.jar文件保存在/usr/lib/jvm/java-1.6.0-sun-1.6.0.33.x86_64/jre/lib/中(指南说将其放在jre/ lib/ ext/中,但这并不起作用,所以我工作时的支持人员将其放在了lib/中)。
发布于 2013-06-03 09:13:33
可能您使用了错误的emma.jar
在android的构建系统中有两个emma.jar。
一个用于主机(在PC上运行),另一个用于目标(在电话上运行)。
您的问题是使用目标 one执行emmarun命令。
在/system/framework/emma.jar下构建的代码是为手机构建的。
build system /external/emma/lib/emma.jar中的一个用于执行命令。
https://stackoverflow.com/questions/12062378
复制相似问题