繁体   English   中英

java.lang.VerifyError 在某些设备上发生

[英]java.lang.VerifyError occurs on some devices

我为我的公司编写了一个 Android 应用程序,因为它对我来说运行良好,所以有一些我自己从未遇到过的错误报告。 我不知道如何解决的是服务中的 java.lang.verifyError。

崩溃的行是:

String post_request = ConnectionHelper.getTicketRequestJsonString(true, ticketIdsToDownload);

ConnectionHelper 是一个 class 仅包含返回字符串的 static 函数。 我能做些什么来解决这个问题?

编辑:如果有帮助,我会发布一些代码,而不是认为我遇到了“安全问题”

public static String getTicketRequestJsonString(boolean details, List<String> ticketIds){
    String ticketString = "tickets:[";
    int count = ticketIds.size() - 1;
    for (int i = 0; i <= count; i++){
        String s = ticketIds.get(i);
        ticketString += s
        ticketString += i != count ? "," : "]";
    }
    return ticketString;
}

我在这里遇到了同样的问题; 最后发现受影响的class使用

try {
localIP = InetAddress.getLocalHost().getHostAddress();
} catch (NetworkOnMainThreadException ex) {         
}

这在 Android 2.3 上因 VerifyError 而失败。

删除 NetworkOnMainThreadException 的使用,它再次适用于 2.3。

当 Android 尝试加载引用不可用内容的 class 时,会发生VerifyError 一个示例是在 Android 2.1 设备上运行时加载引用 Android 3.0 类的 class。

我能做些什么来解决这个问题?

确定它无法加载的具体内容,然后确定如何处理。 For example, there are tricks to be able to avoid loading Android 3.0 classes on an Android 2.1 device, while still using the Android 3.0 classes on an Android 3.x device.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM