簡體   English   中英

java.lang.VerifyError異常拒絕包中的類

[英]java.lang.VerifyError exception rejects class in package

我一直在閱讀有關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? 有什么建議么。

經過大量閱讀,更新和編譯我的android應用程序后,我發現我沒有添加適當的multi-dex支持。 事實證明,我要做的就是將我的gradle文件中的minSdkVersion增加到至少21個(Lollipop設備)。 根據此處找到的Android設備儀表板, https://developer.android.com/about/dashboards/約有10.3%的Android設備運行KitKat,這在較低級別的API(<21)中占很大比例。 我假設這是一個全球范圍的數字,與美國這里的Android設備中的API級別分布無關,我將在該市場發布該應用程序。 因此,我將minSdkVersion更改為21,並在gradle文件中保持multiDexEnabled = true,錯誤消失了。 對於那些支持Lollipop之前的設備並希望添加多dex支持的用戶,請單擊此處https://developer.android.com/studio/build/multidex它將向您確切顯示操作,這並不是很難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM