2012-11-24 52 views
6

我在ADT v21.0.0中构建了一个Android应用程序。这个应用程序需要使用我编译成jar的protobuf库。Android的Java Protobuf - NoClassDefFoundError

通过将这个jar以及protobuf-java-2.4.1.jar放入我的libs /文件夹中,Eclipse可以在构建时识别它,但是无论何时我尝试在Android模拟器中运行该应用程序,都会得到一个NoClassDefFoundError尝试实例化protobuf编译器生成的自动生成的自定义类之一时发生异常。

我见过很多关于命名libs /文件夹的提示(显然以前的ADT更新通过要求/ lib文件夹为/ libs而破坏了这一点),并且显式地从“ Java构建路径“设置窗口(并检查”订单和导出“窗格中的罐子)。

这些都没有帮助,但是,我想知道是否有更基础的东西,防止我的protobuf类在运行时被识别。

注意:如果我在Eclipse中创建一个标准的Java应用程序,我可以使用我的proto类就好了。这只是运行Android应用程序时的一个问题。

+1

请更新您的问题,包括未找到类的全名。 –

+0

这是从我的protobuf消息规范自动生成的自定义类,所以我不确定它是否会有所帮助。不过,我编辑这篇文章直接说明这一点。谢谢! – ricklane

+0

请在您的文章中添加打印堆栈跟踪。 – Visruth

回答

0

看来你的项目导入一些库中的自动生成JAR depends..and就是没有设备或模拟器..