问题标签 [verifyerror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
15338 浏览

android - VerifyError - 验证者拒绝类

我正在为 2.2 ( minSdkVersion=8) 开发,突然我收到了这个错误:

直到现在它工作正常。

注意:SelectType类有大约 16000 行代码,但我猜这并没有那么大。

我在网上搜索了很多,从答案中,我做了以下事情:

  • 清理项目
  • 重置亚行
  • 重启模拟器/设备/eclipse
  • 检查是否在构建路径中检查了第三方库字段

但我仍然收到该错误。

任何帮助表示赞赏。

0 投票
1 回答
858 浏览

android - 使用 ant 构建时验证错误,从 Eclipse 构建时确定

我的 Android 的 java 项目有几个配置。以前我切换它们并手动从 Eclipse 构建 apk,但最近我开发了几个 ant 任务以使我的生活更轻松:我启动 cmd 文件并构建所有配置(每次更改配置变量,移动资源,修改清单, ETC。)。

但是今天我发现ant(它使用javac)用android工作流(我的build.xml包括${sdk.dir}/tools/ant/build.xml)编译的代码与Eclipse中ADT工具生成的代码不同. 差异是致命的。

在编译阶段 javac 声称某些文件包含 BOM,并且一个类太大(对于许多静态数组)。我已经将所有文件转换为 utf8 w/o bom,将大类分成两个,javac 没有更多问题。很容易。

但是,如果我在 4.0.x 设备或模拟器上启动 ant-made apk(在 1.6、2.2、4.1、4.2 上工作),它会在运行时强制关闭并说:

但是 eclipse-adt-made apk 在 4.0.x 上运行得很好!此外 - 我从未在编译时看到关于 utf bom 或类大小的 adt 声明。

所以我认为我们应该在 ant build 中使用其他东西而不是 javac。但是谷歌在它的 build.xml 中完全使用了 javac。使用 ant 构建时,我们如何使用 ADT 编译器而不是 javac?

当然,我仍然可以在 eclipse 中构建,但是 ant 脚本在我花费 20 分钟时花费 1 分钟,并且在更改 cfg vars 时它永远不会犯愚蠢的错误(它们之间存在一些依赖关系)。

提前致谢!

UPDT:我怀疑它与我使用的 java 版本有某种联系。Ant 使用 1.7 x86 jdk 执行,而 eclipse 使用 jdk1.6.0_26 x64。有人说 Dalvik dex 不理解一些 java 1.7 字节码,但我应该检查一下。

UPDT1:不,我已经删除了所有 jdk,然后安装了 jdk 1.6.0_41 x86 和 x64,设置 eclipse 使用 1.6.0_41 x64 并将 JAVA_PATH 设置为 jdk 1.6.0_41 x86。同样的事情-在eclipse中编译的apk(Android工具->导出签名的apk)可以工作,ant-compiled apk说VerifyError。

0 投票
1 回答
658 浏览

android - Android 1.6 上的 java.lang.VerifyError 和 getActionBar()

在我的应用程序中,我正在使用以下代码:

但是当我在带有 Android 1.6 的模拟器中运行它时,我得到了这个错误:

当我删除线 getActionBar().setHomeButtonEnabled(false); 它工作正常。在不删除此行的情况下如何修复它?

0 投票
1 回答
1152 浏览

android - 带有 exp4j 库的 Android java.lang.VerifyError

我尝试制作自己的小型计算器,但我不想自己制作所有的业务逻辑。所以我尝试使用,javax.script因为我听说javax.script需要一个真正的 JVM 并且是一个 JavaScriptParser。然后,我搜索了其他具有我需要的功能的库,并找到了项目“exp4j”。首先,我使用 JDK 1.7 制作了一个小型普通 Java 项目,是的,它适用于源代码:

然后,我在我的计算器模型(MVC 模式)中尝试了相同的代码:

但每次我得到同样的例外:

"AndroidRuntime(630): java.lang.VerifyError",

在我启动应用程序之后。我无法单击运行该方法的按钮,berechnen()因为应用程序在我启动后崩溃。

我很困惑为什么我的程序不起作用。当我删除 exp4j 的所有导入并删除计算源时,我的计算器工作正常。

我唯一的想法是 exp4j 库正在使用 Android 中不存在的类或方法。

谢谢你。

0 投票
2 回答
2962 浏览

java - 带有 ASM 的 Java 字节码检测:在 INVOKESPECIAL 指令中代码注入时的验证错误

我是字节码注入的新手。到目前为止,通过详尽的研究和痛苦的反复试验,我能够得到我想要的一切 :-) 但我似乎已经达到了我目前追求的目标的极限。所以,这就是:我的第一个 stackoverflow 问题!

我的目标是通过 java 代理跟踪方法调用的对象引用。我正在使用 ASM 4.0 库并实现了 AdviceAdapter。我重写的 visitMethodInsn() 方法如下所示:

简而言之,我试图在 INVOKESOMETHING 操作执行到局部变量之前保存堆栈上的所有内容。为了启用方法操作的执行,我必须将整个东西放回堆栈。之后我假设被调用对象的引用是我本地数组中的第一个条目。

以下是我的测试课程之一。这个很简单:它只是启动另一个线程:

关于 INVOKEVIRTUAL、INVOKEINTERFACE 和 INVOKESTATIC,我没有遇到任何问题。一切似乎都很好,日志输出正是我所期望的。但是,INVOKESPECIAL 指令似乎存在问题。我在这里遇到了一个丑陋的 VerifyError,所以我想我处理堆栈的方式一定有问题。

使用“-noverify”启动测试类会使 VerifyError 消失。一切似乎都很完美,我得到了想要的输出。我可以就这样离开它,但实际上整个问题让我感到痛苦,让我睡得很糟糕;-)

如果我的理解是正确的,那么像“new Thread()”这样的语句就会变成

在字节码中。新创建的对象在调用构造函数之前仍未初始化,会不会是个问题?

我不明白为什么代码可以正常工作,但 JVM 在验证期间抱怨。

即使在检测后查看反编译的代码也无济于事:

一些附加信息:我正在使用 IntelliJ IDEA 10.5.4 进行开发并使用 jdk1.6.0_39。

最后,我希望这里有人可以帮助我获得必要的见解。提前致谢!

0 投票
1 回答
95 浏览

java - Android 意图过滤器验证错误

我有一个相当不寻常的问题。我的程序直接打开时工作正常。当通过意图过滤器自定义扩展匹配打开时,它会因验证错误而崩溃。它找不到的类位于 java 项目依赖项的库 jar 中。

请记住,当从应用程序抽屉打开时,它可以完美运行。

作为快速检查,我将 jar 从 java 项目依赖项复制到我的 Android 项目中。之后,即使是意图过滤器扩展匹配,它也能正常运行。

有谁知道为什么类查找会根据意图过滤器匹配表现不同?

0 投票
0 回答
162 浏览

android - 在 android 中使用谷歌日历 API 来检索提要

我正在使用以下代码将谷歌日历中的所有提要检索到我的应用程序中。

运行应用程序时出现以下错误。我认为用户凭据有问题,所以我公开了我的日历并尝试运行它,但仍然出现相同的错误。我浏览了几个解决方案,他们建议将 gdata jar 文件放入 libs 文件夹,但是当我这样做时,我得到了一个 dalvik 错误,因为在 android 4.0 中,libs 文件夹包含 android-support-v4.jar,这会弹出一个错误说文件重复。

0 投票
4 回答
16949 浏览

java - Java.lang.verifyerror 如何修复甚至找出根本原因?

在此处输入图像描述目前正在经历一场试图修复 java.lang.verifyerror 的噩梦,遇到了 eclipse 的问题,所以我决定卸载并重新安装它,一切似乎都很正常,直到我尝试启动应用程序,那时我注意到我无法启动应用程序再说了,每次我尝试启动它时它都会崩溃并给我这个错误,但是我不知道是什么原因造成的,因为错误日志给我的线索很少,而且我在互联网上找不到任何具体的答案,谁能告诉我是什么根据我的 logcat 错了吗?任何帮助都会有很大帮助,谢谢

0 投票
1 回答
297 浏览

android - AIDL 服务的 java.lang.VerifyError

我正在努力让应用程序与另一个应用程序(称为 CSipSimple)中的外部服务进行通信。我能够绑定到服务:

在指示的行上引发异常。我四处搜索并尝试了以下所有方法,但无济于事:

  • 将 AIDL 文件添加到项目的源文件夹
  • 将其他应用程序 (CSipSimple) 添加为所需项目
  • 检查订单/出口列表中的所有条目
  • 清理和重建两个应用程序

会产生以下错误:

看起来它找不到一些必需的类/方法,但我已将所有 AIDL 文件添加到我的项目中。任何帮助将不胜感激!

0 投票
2 回答
382 浏览

android - 为什么我在使用 SwitchPreference 时遇到异常

我想在 api>=14 时使用 SwitchPreference sToggle 并在 api<14 时使用 CheckBoxPreference chToggle

我的代码异常

...

...

你能帮我吗?)