关于java.lang.VerifyError异常的快速问题.假设我收到如下错误:
Java call terminated by uncaught Java exception: java.lang.VerifyError:(class: com/.../MyClassName, method: <init> signature: (Ljava/io/Reader;)V) Incompatible argument to function
Run Code Online (Sandbox Code Playgroud)
你能帮我理解"init"和"(Ljava/io/Reader;)V)"部分的含义吗?它们看起来不像我的方法名称或签名,但我对java不太熟悉.谢谢!
目前正在经历一场试图修复java.lang.verifyerror的噩梦,因为我遇到了eclipse的问题所以我决定卸载并重新安装它,一切似乎正常,直到我尝试启动应用程序,那就是当我注意到我无法启动应用程序时再一次,每次我试图它崩溃它崩溃并给我这个错误,但我不知道是什么导致它,因为错误日志给我一些线索,我无法在互联网上找到任何具体的答案,任何人都可以告诉我什么是基于我的logcat错了吗?任何帮助都会有很长的路要走
05-26 23:11:45.391: E/AndroidRuntime(624): FATAL EXCEPTION: main
05-26 23:11:45.391: E/AndroidRuntime(624): java.lang.VerifyError: com/vineline/second/OTweetApplication
05-26 23:11:45.391: E/AndroidRuntime(624): at java.lang.Class.newInstanceImpl(Native Method)
05-26 23:11:45.391: E/AndroidRuntime(624): at java.lang.Class.newInstance(Class.java:1319)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.Instrumentation.newApplication(Instrumentation.java:957)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.Instrumentation.newApplication(Instrumentation.java:942)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.LoadedApk.makeApplication(LoadedApk.java:477)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3909)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.ActivityThread.access$1300(ActivityThread.java:122)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1184)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.os.Handler.dispatchMessage(Handler.java:99)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.os.Looper.loop(Looper.java:137)
05-26 23:11:45.391: E/AndroidRuntime(624): at android.app.ActivityThread.main(ActivityThread.java:4340)
05-26 23:11:45.391: E/AndroidRuntime(624): at java.lang.reflect.Method.invokeNative(Native Method)
05-26 23:11:45.391: E/AndroidRuntime(624): at java.lang.reflect.Method.invoke(Method.java:511)
05-26 …Run Code Online (Sandbox Code Playgroud) 我在这个版本的Java上使用Maven 3.2.3
davea$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
我跑的时候
mvn clean install
Run Code Online (Sandbox Code Playgroud)
我在集成测试中遇到如下错误...
testFindSampleUsersByCodeAscByDefault(org.mainco.subco.user.service.SampleUserService2IT) Time elapsed: 2.204 sec <<< ERROR!
java.lang.VerifyError: Expecting a stackmap frame at branch target 57
Exception Details:
Location:
org/mainco/subco/user/service/SampleUserServiceImpl$ValueComparator.compare(Lorg/mainco/subco/user/domain/User;Lorg/mainco/subco/user/domain/User;)I @10: ifnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2ab4 001b 2bb9 002e 0200 c600 2f2a b400
0x0000010: 1b2b b900 2e02 00c0 0030 b600 34c6 001c
0x0000020: 2ab4 001b 2bb9 002e 0200 c000 30b6 0034
0x0000030: b600 39b6 003e a700 0512 404e 2ab4 001b
0x0000040: 2cb9 002e …Run Code Online (Sandbox Code Playgroud) verifyerror java-8 maven-failsafe-plugin maven-compiler-plugin
我有一个仅限库的Android eclipse项目(没有主类,只有库类),我想包含在我的主要Android应用程序项目中.
我转到Build Path并将库项目添加到Projects选项卡上的"构建路径上的必需项目",并在"Order and Export"选项卡上进行了检查.
但是,当应用程序运行时,它会发出VerifyError异常,因为库项目中的类没有碰巧在apk中打包在一起.
对此有何解决方案?
提前道歉,但我以前从未见过这个错误,也不知道要包括什么.我正在使用NetBeans并突然开始收到此错误:
Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: market/CostOperations, method: <init> signature: ()V) Constructor must call super() or this()
at Bluebuild.Main.refreshTables(Main.java:748)
at Bluebuild.Main.formComponentShown(Main.java:649)
at Bluebuild.Main.access$100(Main.java:28)
at Bluebuild.Main$2.componentShown(Main.java:374)
at java.awt.Component.processComponentEvent(Component.java:6095)
at java.awt.Component.processEvent(Component.java:6043)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Window.processEvent(Window.java:1836)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Run Code Online (Sandbox Code Playgroud)
我不知道发生了什么.我甚至没有修改market/CostOperations.
这是构造函数:
public CostOperations() throws ParserConfigurationException, SAXException, IOException {
//Open the xml file
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
f = new …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,它使用overridePendingTransition在从一个活动转换到另一个活动时执行一些自定义动画.这在Android 2.0中可用,但我想让应用程序在Android 1.6上运行.我想如果我刚检查了android.os.Build.VERSION.SDK_INT> android.os.Build.VERSION_CODES.DONUT,如果没有,请不要执行overridePendingTransition.
但是,我得到一个VerifyError,我假设是由此引起的:VFY:无法解析虚方法346:../../Login:overridePendingTransition(II)V
是否无法根据SDK版本有条件地使用更新的功能?
升级后出现此错误:
java.lang.VerifyError :(类:com/mydomain/server/webservices/OAuth2Utils,方法:newFlow签名:()Lcom/google/api/client/googleapis/auth/oauth2/GoogleAuthorizationCodeFlow;)函数的不兼容参数
不确定这可能是相关的,但有关我的环境的一些信息:
Linux n53sv 3.2.0-24-generic#38-Ubuntu SMP Tue May 1 16:18:50 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux java version"1.6.0_31"Java(TM)SE运行时环境(版本1.6.0_31- b04)Java HotSpot(TM)64位服务器VM(内置20.6-b01,混合模式)
更新:
我把问题剥离到了最低限度,这真的令人难以置信.我创建了一个类BadClassTest,并在Servlet中创建了一个BadClassTest实例.当我的BadClassTest看起来像这样:
public class BadClassTest {
public BadClassTest() {
com.google.api.client.http.HttpTransport HTTP_TRANSPORT = new com.google.api.client.extensions.appengine.http.urlfetch.UrlFetchTransport();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以创建一个实例.
当我的BadClassTest看起来像这样:
public class BadClassTest {
com.google.api.client.http.HttpTransport HTTP_TRANSPORT = new com.google.api.client.extensions.appengine.http.urlfetch.UrlFetchTransport();
public BadClassTest() {
//com.google.api.client.http.HttpTransport HTTP_TRANSPORT = new com.google.api.client.extensions.appengine.http.urlfetch.UrlFetchTransport();
}
}
Run Code Online (Sandbox Code Playgroud)
我现在无法创建BadClassTest的实例.我遇到以下异常:
java.lang.VerifyError :(类:com/klawt/server/BadClassTest,方法:签名:()V)putfield/putstatic中的错误类型
(这不是其他类似问题的重复,因为这只发生在一小部分用户身上,不能由我重新创建)
在我最新的发布版本中,我突然看到了班级中java.lang.VerifyError出现类似崩溃的巨大高峰Application.
这条线很简单:
Settings.init(this);
Run Code Online (Sandbox Code Playgroud)
Settings周围的便利包装类在哪里SharedPreferences.似乎在不到百分之一的用户中找不到该类.
我们无法在我的团队设备上重新创建崩溃,Google Play的发布前报告显示0错误.
这是完整的堆栈跟踪:
java.lang.VerifyError:
at com.my_package.MyApplication.onCreate (MyApplication.java:74)
at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1036)
at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6321)
at android.app.ActivityThread.access$1800 (ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1861)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:158)
at android.app.ActivityThread.main (ActivityThread.java:7229)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud)
Settings.init:
public static void init(Context context) {
sPrefs = PreferenceManager.getDefaultSharedPreferences(context);
}
Run Code Online (Sandbox Code Playgroud)
我应该补充一点,这个问题在我的单个生产应用程序版本上发生了97%,我无法重新创建运行该版本或任何版本的崩溃,但似乎只有该版本受到影响,到目前为止所有版本都有没有这个崩溃.
但是,我仍然看到该应用版本在Google Play中崩溃,我担心它可能会在未来的版本中出现,因为我认为我在这个版本中没有改变任何方式与堆栈跟踪相关.
我有一个带有测试用例的简单类,并且在eclipse中一切正常,但是当我运行maven build(有了这个目标:安装cobertura:cobertura checkstyle:checkstyle-aggregate)我在surefire报告中看到了一个Verify错误.
这是确切的错误:
-------------------------------------------------------------------------------
Test set: com.diploma.testProject.ClassUnderTestTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.034 sec <<< FAILURE!
testMethodReturnsTrue(com.diploma.testProject.ClassUnderTestTest) Time elapsed: 0.005 sec <<< ERROR!
java.lang.VerifyError: Expecting a stackmap frame at branch target 79 in method com.diploma.testProject.ClassUnderTest.method(II)Z at offset 24
at com.diploma.testProject.ClassUnderTestTest.testMethodReturnsTrue(ClassUnderTestTest.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at …Run Code Online (Sandbox Code Playgroud) 我正在为2.2(minSdkVersion=8)开发,突然间我收到了这个错误:
arbitrarily rejecting large method (regs=75 count=28584)
rejected Lcom/Demo/Loyalty/SelectType;.onClick (Landroid/view/View;)V
Verifier rejected class Lcom/Demo/Loyalty/SelectType;
Class init failed in newInstance call (Lcom/Demo/Loyalty/SelectType;)
java.lang.VerifyError: com.Demo.Loyalty.SelectType
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1429)
at android.app.Instrumentation.newActivity(Instrumentation.java:1022)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
到目前为止工作正常.
注意:SelectType类有大约16000行代码,但我想这不是那么大.
我在网上和搜索中搜索了很多,我做了以下事情:
但我仍然得到那个错误.
任何帮助赞赏.