致命异常:java.lang.VerifyError:来自导入的jar文件

致命异常:java.lang.VerifyError:来自导入的jar文件,java,android,eclipse,jar,verifyerror,Java,Android,Eclipse,Jar,Verifyerror,我正在构建一个库项目,其中我正在使用第三方jar文件 通常,当我使用这个库作为TestApp的依赖项时,所有的事情都会正常工作。附件是该项目的屏幕截图: 但是,当我从TestSDK库项目导出jar并将其添加到TestApp的构建路径时,如下所示: 在设备上部署应用程序时,我收到VerifyError。以下是它的日志: 12-30 18:10:55.778: W/dalvikvm(7316): VFY: unable to find class referenced in signature

我正在构建一个库项目,其中我正在使用第三方jar文件

通常,当我使用这个库作为TestApp的依赖项时,所有的事情都会正常工作。附件是该项目的屏幕截图:

但是,当我从
TestSDK
库项目导出jar并将其添加到
TestApp
的构建路径时,如下所示:

在设备上部署应用程序时,我收到
VerifyError
。以下是它的日志:

12-30 18:10:55.778: W/dalvikvm(7316): VFY: unable to find class referenced in signature (Lcom/aerserv/sdk/ASAdView;)
12-30 18:10:55.788: W/dalvikvm(7316): VFY: Ljava/lang/Object; is not instance of Landroid/view/View;
12-30 18:10:55.788: W/dalvikvm(7316): VFY: bad arg 1 (into Landroid/view/View;)
12-30 18:10:55.788: W/dalvikvm(7316): VFY:  rejecting call to Landroid/view/ViewGroup;.removeView (Landroid/view/View;)V
12-30 18:10:55.788: W/dalvikvm(7316): VFY:  rejecting opcode 0x6e at 0x0011
12-30 18:10:55.788: W/dalvikvm(7316): VFY:  rejected Lcom/anupam/sdk/activities/AdsActivity;.initAerservAd ()V
12-30 18:10:55.788: W/dalvikvm(7316): Verifier rejected class Lcom/anupam/sdk/activities/AdsActivity;
12-30 18:10:55.788: W/dalvikvm(7316): Class init failed in newInstance call (Lcom/anupam/sdk/activities/AdsActivity;)
12-30 18:10:55.788: D/AndroidRuntime(7316): Shutting down VM
12-30 18:10:55.788: W/dalvikvm(7316): threadid=1: thread exiting with uncaught exception (group=0x41596ba8)
12-30 18:10:55.788: E/AndroidRuntime(7316): FATAL EXCEPTION: main
12-30 18:10:55.788: E/AndroidRuntime(7316): Process: com.anupam.testsdk, PID: 7316
12-30 18:10:55.788: E/AndroidRuntime(7316): java.lang.VerifyError: com/anupam/sdk/activities/AdsActivity

正确的方法应该是什么?我是不是遗漏了什么。任何形式的帮助或指导都将不胜感激。

我认为您的JAR依赖于Aerserv SDK,但不包括它。我也没有看到它包含在应用程序中


请注意,JAR库的构建依赖项不会自动包含在内。在构建库时,依赖关系是一个问题。您有两种选择:将依赖项包括在jar本身中(您必须强制构建系统这样做),或者指示库用户这样做(类似于Aerserv所做的)。当包含依赖项时,如果库用户也对它们进行广告,则可能会发生冲突

您使用的是Oracle Java还是OpenJDK?因此,我必须手动在TestApp中使用aerserv jar,它不能包含在库项目中吗?感谢atok提供了真正快速的答案。如果我错了,请纠正我。要使其正常工作,我必须在库项目中手动添加aerserv源代码,而不是jar?或者第二,我必须在TestApp中手动添加aerserv jar才能工作?除此之外,无法解决此问题?复制代码是一个坏主意,因为您无法跟踪依赖项中的更改。你可以使用Gradle或Maven自动构建一个包含所有依赖项的“胖罐子”。你能指导我怎么做吗?我从来没有用过Gradle或Maven来达到这个目的。我听说过oneJar的概念,但我怀疑它是否适合我。你还推荐其他东西吗?@Anupam你在用eclipse吗?