का उपयोग करते समय सत्यापनकर्ता लॉलीपॉप पर कक्षा को खारिज कर दिया गया है जब मैं 5.x
डिवाइस पर अपनी रिलीज एपीके इंस्टॉल करता हूं तो मुझे यह त्रुटि मिलती है। त्रुटि तब नहीं होती जब मैं एंड्रॉइड स्टूडियो से एक ही कोड दबाता हूं, या यदि मैं इसे 4.x
डिवाइस पर चलाता हूं।java.lang.VerifyError: रिलीज एपीके
java.lang.VerifyError: Verifier rejected class com.myapp.android.ui.activity.MainActivity$$ViewInjector due to bad method void com.myapp.android.ui.activity.MainActivity$$ViewInjector.reset(com.myapp.android.ui.activity.MainActivity) (declaration of 'com.myapp.android.ui.activity.MainActivity$$ViewInjector' appears in /data/app/com.myapp.android-2/base.apk)
at java.lang.Class.classForName(Class.java)
at java.lang.Class.forName(Class.java:308)
at java.lang.Class.forName(Class.java:272)
at butterknife.ButterKnife.findInjectorForClass(ButterKnife.java:298)
at butterknife.ButterKnife.inject(ButterKnife.java:271)
at butterknife.ButterKnife.inject(ButterKnife.java:184)
at com.myapp.android.ui.activity.MyDrawerActivity.onCreate(MyDrawerActivity.java:31)
मैं कक्षा में अपने टूलबार और कस्टम नेविगेशन ड्रावर इंजेक्ट करता हूं।
@InjectView(R.id.toolbar) Toolbar mToolbar;
@InjectView(R.id.nav_drawer) MyNavigationDrawer mNavigationDrawer;
लाइन 31:
ButterKnife.inject(this);
वहाँ कुछ है कि Butterknife codegen साथ अलग है जब gradle assembleRelease
का उपयोग कर किया जाएगा है? मैं ProGuard का उपयोग नहीं कर रहा हूँ।
# Android SDK settings
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.2
Logcat
I/art (21354): Verification error in void com.myapp.android.ui.activity.MainActivity$$ViewInjector.inject(butterknife.ButterKnife$Finder, com.myapp.android.ui.activity.MainActivity, java.lang.Object)
I/art (21354): void com.myapp.android.ui.activity.MainActivity$$ViewInjector.inject(butterknife.ButterKnife$Finder, com.myapp.android.ui.activity.MainActivity, java.lang.Object) failed to verify: register v4 has type Reference: com.myapp.android.ui.activity.MainActivity but expected Reference: com.myapp.android.ui.activity.LoggedInNavActivitya.lang.Object): [0x0]
I/art (21354): Verification error in void com.myapp.android.ui.activity.MainActivity$$ViewInjector.reset(com.myapp.android.ui.activity.MainActivity)
I/art (21354): void com.myapp.android.ui.activity.MainActivity$$ViewInjector.reset(com.myapp.android.ui.activity.MainActivity) failed to verify: register v1 has type Reference: com.myapp.android.ui.activity.MainActivity but expected Reference: com.myapp.android.ui.activity.LoggedInNavActivity
E/art (21354): Verification failed on class com.myapp.android.ui.activity.MainActivity$$ViewInjector in /data/app/com.myapp.android-1/base.apk because: Verifier rejected class com.myapp.android.ui.activity.MainActivity$$ViewInjector due to bad method void com.myapp.android.ui.activity.MainActivity$$ViewInjector.reset(com.myapp.android.ui.activity.MainActivity)
आप logcat उत्पादन दिखा सकते हैं? अपवाद से पहले लॉग में कुछ अतिरिक्त जानकारी हो सकती है। (Dalvik में था, यकीन नहीं है कि कला क्या दिखाता है।) – fadden
मैंने लॉग जोड़ा जो त्रुटि से ठीक पहले दिखाई देता है। मुझे तुरंत एक समस्या दिखाई देती है। लाइन 2 'लॉग इनइन एनएवीएक्टिविटी' नामक एक अभिभावक वर्ग को दिखाता है, 'ए' वास्तविक नाम में नहीं है। अन्य चमकदार मुद्दा यह है कि 'LoggedInNavActivity' अब मेरे कोडबेस में भी नहीं है ... मैंने थोड़ी देर पहले उस फ़ाइल को हटा दिया था। –