【问题标题】:java.lang.VerifyError exception rejects class in packagejava.lang.VerifyError 异常拒绝包中的类
【发布时间】:2018-07-10 08:41:08
【问题描述】:

我一直在阅读有关 verifyError 异常的信息,但我似乎无法为我的问题找到一个好的解决方案。

日志给我以下错误:

Caused by: java.lang.VerifyError: Verifier rejected class mypackage.GraphThready: void mypackage.GraphThready.run() failed to verify: void mypackage.GraphThready.run(): [0x50BE] copy1 v2<-v398 type=Undefined cat=1 (declaration of 'mypackage.GraphThready' appears in /data/app/mypackage-2/split_lib_slice_9_apk.apk)

我不知道是因为我的类 mypackage.GraphThready 被声明了两次,还是因为我正在使用 API 24(版本号 7.0)在 Android 设备上测试我的应用程序

这是应用程序 gradle 文件的部分内容:

compileSdkVersion 26
buildToolsVersion '27.0.3'
defaultConfig {
    applicationId "mypackage"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 2
    versionName "2.0"
    multiDexEnabled true

也许我应该将 'compiledSdkVersion' 更改为 24? 有什么建议么。

【问题讨论】:

  • 一般经验法则是用file -&gt; invalidate caches &amp; restart 重新启动Android Studio
  • 我已经试过了@IoaneSharvadze
  • 另外,降级compileSdkVersion 不是一个好选择,因为您将无法使用新的API。请尝试升级。升级构建工具、Android Studio、Gradle 版本。
  • 设置 buildToolsVersion '27.0.3' 兼容 compileSdkVersion 26. 升级 compileSdkVersion , targetSdkVersion 到 27.

标签: android verifyerror


【解决方案1】:

经过大量阅读、更新和编译我的 Android 应用程序后,我发现我没有添加适当的多 dex 支持。事实证明,我所要做的就是将我的 gradle 文件中的 minSdkVersion 增加到至少 21(棒棒糖设备)。根据此处找到的 Android 设备仪表板 https://developer.android.com/about/dashboards/,大​​约 10.3% 的 Android 设备运行 KitKat,这在较低级别的 API (https://developer.android.com/studio/build/multidex 它将准确地告诉您该做什么,这并不难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2015-05-26
    相关资源
    最近更新 更多