2009-03-21 8 views
94

मेरे एंड्रॉइड ऐप में, मुझे हमेशा VerifyErrors मिलते हैं! और मैं समझ नहीं सकता क्यों। जब भी मैं बाहरी जार शामिल करता हूं, तो जब मैं अपना ऐप लॉन्च करने का प्रयास करता हूं, तो मुझे हमेशा VerifyErrors मिलते हैं (एक बार छोड़कर, जब मैंने अपाचे लॉग 4j शामिल किया था।)एंड्रॉइड java.lang.VerifyError?

मैं आमतौर पर लाइब्रेरी का स्रोत ले कर इसे जोड़ता हूं और इसे जोड़ता हूं मेरी परियोजना, लेकिन मैं GData client library डालने की कोशिश कर रहा हूं।

मैं स्रोत में प्राप्त कर सकते हैं, लेकिन यह निर्भरता है (mail.jar, activation.jar, सर्वलेट-api.jar) मैं नहीं कर सकता, तो मैं त्रुटियों को सत्यापित मिलता है। मैं एक बार और सभी के लिए इस समस्या की जड़ तक पहुंचना चाहता हूं। मैंने इंटरनेट पर देखा, लेकिन वे सभी अपूर्ण वर्ग फाइलों के बारे में बात करते हैं? जो मुझे नहीं पता।

+0

GData एंड्रॉइड में काम नहीं करने के लिए जाना जाता है। एंड्रॉइड डेवलपर्स Google समूह में विषय के लिए खोजें। भविष्य में एसडीके रिलीज में हमें एंड्रॉइड के लिए आधिकारिक जीडीटा की प्रतीक्षा करनी होगी। – mparaz

+0

क्या आप अपनी परियोजना बनाने के लिए ग्रैडल का उपयोग कर रहे हैं? मुझे यह समस्या थी जब मैं इकट्ठा करने से पहले साफ कार्य चलाने के लिए भूल गया था ... –

उत्तर

32

एंड्रॉयड एक अलग वर्ग फ़ाइल स्वरूप उपयोग करता है। क्या आप "डीएक्स" उपकरण के माध्यम से तीसरी पार्टी जेएआर फाइलें चला रहे हैं जो एंड्रॉइड एसडीके के साथ जहाजों?

+36

मुझे नहीं पता, मैं इसे ग्रहण में कर रहा हूं ... –

+4

"dx" टूल पर कुछ और जानकारी के साथ अजीब होगा। –

+2

एसडीके संस्करणों की सूची के नीचे एंड्रॉइड प्रोजेक्ट प्राथमिकताओं के "लाइब्रेरी" अनुभाग में देखें। क्या आपके बाहरी प्रोजेक्ट्स पर आप भरोसा कर रहे हैं, वहां उनके बगल में एक हरे रंग की टिक के साथ दिखाए जा रहे हैं? – Adam

113

LogCat पर देखो और क्या verifyerror पैदा देखते हैं। यह शायद java.lang क्लास में कुछ विधि है जो आपके द्वारा उपयोग किए जा रहे एंड्रॉइड एसडीके स्तर पर समर्थित नहीं है (उदाहरण के लिए, String.isEmpty())।

+4

इसे वास्तविक उत्तर के रूप में चिह्नित किया जाना चाहिए। कम से कम मेरे मामले में यह वास्तव में क्या था क्योंकि मुझे अपने उपयोगकर्ताओं से स्पोरैडिक त्रुटियां मिल रही थीं और मैंने इसे View.getTag (int) कॉल पर ट्रैक किया जो एपीआई – Bostone

+1

के v। 3 में समर्थित नहीं है। मुझे यह कुछ बार सामना करना पड़ा है और हर बार यह है कि मैं 2.x को लक्षित कर रहा हूं और कुछ ऐसा उपयोग कर रहा हूं जो 1.5 में नहीं है। जो आपको फेंकता है वह तब फेंक दिया जाता है जब कक्षा पहली बार बनाई जाती है/प्रयोग की जाती है, इसलिए अगर ऐसा कुछ ऐसा होता है जो आपको थोड़ी देर के लिए नहीं देख पाता है। – mbafford

+1

यदि ऐसा है, तो आपको इन लिंक को चेकआउट करना चाहिए: http://developer.android.com/resources/articles/backward-compatibility.html और http://doandroids.com/blogs/2010/5/8/backwards संगतता/ – MyNameIsZero

1

मैं भी VerfiyError मिलता है ... एक वास्तविक कारण नहीं मिल रहा। यह कोड की नई लाइनों को एक विधि (ग्रहण, 'निकालें विधि ...') में लपेटने में मदद करता है। तो मेरे मामले में कारण असमर्थित विधि नहीं है।

8

यह अभी मुझे क्या हुआ। त्रुटि इसलिए हुई क्योंकि मैं अपने डिवाइस के एक नए एसडीके से विधियों का उपयोग कर रहा था।

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/> 
53

android-developers से::

"adb logcat" से उत्पादन वर्ग के साथ-साथ वर्ग है कि जा नहीं मिला सकता है इंगित करता है

एंड्रॉयड 1.5 डिवाइस इस का उपयोग करते हुए एक apk स्थापित बुरा संदर्भ। स्थान विशिष्ट Dalvik निर्देश के लिए नीचे पहचाना गया है। अपवाद के ऊपर लॉग इन देखने के लिए चाल है।

+6

सत्यापित करने में विफल क्यों हुआ, अपवाद के ऊपर देखकर मुझे त्रुटि उत्पन्न करने वाली विधि की पहचान करने में भी मदद मिली। मेरे लिए, यह अभिव्यक्ति Build.VERSION.SDK_INT> = Build.VERSION_CODES.ECLAIR थी जो अंत में स्पष्ट है, यदि आप कपकेक पर कोशिश करते हैं ... – Manuel

+2

धन्यवाद! यह वह समस्या थी जो मुझे मिल रही थी ... उपयोगी लॉग अपवाद से ऊपर थे: 'वॉर्न/दल्विकवम (1052): वीएफवाई: स्थैतिक विधि 475 को हल करने में असमर्थ: Ljavax/xml/डेटाटाइप/डेटाटाइप फैक्ट्री; नया परिवर्तन() Ljavax/एक्सएमएल/डाटाटाइप/डाटाटाइप फैक्ट्री; '(अब डेटाटाइप फैक्ट्री के बिना कैसे करना है) – pyko

+0

त्रुटि के ऊपर देखकर मुझे भी मदद मिली। "VFY:" से शुरू होने वाले संदेश की तलाश करें, मेरे मामले में, यह "मनमाने ढंग से बड़ी विधि को अस्वीकार कर रहा है"। शायद क्योंकि यह बड़ी संख्या में सरणी बनाता है :) वैसे भी, टिप के लिए धन्यवाद! – Amplify91

14

इसे काम करने के लिए आपको स्रोत फ़ोल्डर में से किसी एक को लाइब्रेरी का जार जोड़ने की आवश्यकता है (भले ही आपने इसे पहले से ही ग्रहण लाइब्रेरी के रूप में जोड़ा हो, फिर भी आपको इसे स्रोत के रूप में जोड़ने की आवश्यकता है)।

  1. अपनी परियोजना में एक निर्देशिका बनाएँ (e.x. "libs") और वहाँ पुस्तकालय जार डाल दिया।
  2. बिल्ड क्लास पथ में निर्देशिका जोड़ें ( फ़ोल्डर पर दायां बटन क्लिक करें और "पथ बनाएं" का चयन करें -> "स्रोत फ़ोल्डर के रूप में का उपयोग करें")।
  3. अपनी परियोजना को पुनर्निर्माण करें।
+1

धन्यवाद मैक्सिम, यह मेरी समस्या का समाधान किया। – Shraddha

+0

क्या हम एक जेएआर के बजाय 'libs' फ़ोल्डर में "प्रोजेक्ट लाइब्रेरी" जोड़ सकते हैं? – Ahmed

+0

अजीब ... मुझे इसे सामान्य जावा लाइब्रेरी के रूप में जोड़ना था - ग्रहण में "एंड्रॉइड" मेनू के तहत लाइब्रेरी के रूप में नहीं। – Phil

0

मैं भी इस समस्या थी के रूप में एक उपयोगकर्ता पुस्तकालय में मेरी जार ...

तरह से मैं हल यह उन्हें lib फ़ोल्डर में जोड़े गए और फिर उन्हें ग्रहण में निर्माण के गुणों में जोड़ने के लिए था ...

पहली बार मैं इस किया था यह काम नहीं किया, लेकिन तब मैं उन्हें हटा दिया और उन्हें फिर से readded और यह काम करना शुरू किया ... एक अजीब से एक की

सा! लेकिन अब हर समय काम कर रहा है।

गुड लक

0

मैं एंड्रॉयड एपीआई तरीकों/वर्ग कि एसडीके 2.1 में हैं कोड किया है, और Android 1.6 एमुलेटर इसे चलाने के लिए कोशिश कर रहा था। तो मुझे वह त्रुटि मिली।

समाधान: इसे एमुलेटर संस्करण को सही करने के लिए परिवर्तित किया गया।

यह काम के लिए काम करता है .. धन्यवाद।

2

समस्या दो एंड्रॉइड परियोजनाओं के बीच एक विसंगति के कारण भी हो सकती है। उदाहरण के लिए यदि आपने "com.yourcompany" पैकेज का उपयोग करके एंड्रॉइड लाइब्रेरी विकसित की है, तो आपके पास बेस पैकेज के समान पैकेज का उपयोग करके मुख्य एप्लिकेशन का प्रोजेक्ट है। फिर मान लें कि आप अपने मुख्य ऐप के संस्करण को बदलना चाहते हैं, इसलिए आप मेनिफेस्ट फ़ाइल के मान बदल सकते हैं: संस्करण कोड और संस्करण का नाम। यदि आप लाइब्रेरी के लिए उन मानों को बदले बिना अपना ऐप चलाते हैं, तो आपको लाइब्रेरी से किसी ऑब्जेक्ट पर किसी विधि के किसी भी कॉल पर एक सत्यापित त्रुटि प्राप्त होगी।

2

मुझे एक ही समस्या थी। मैं 2.1 आर 1 के साथ निर्माण कर रहा था और नए विज्ञापन 17 के साथ 2.1 आर 3 में अपडेट किया गया था। मैंने जवामेल के मेल.जर पर त्रुटियों की पुष्टि की थी और यह मुझे पागल कर रहा था। यहां बताया गया है कि मैंने इस मुद्दे को हल किया:

  1. ने एक libs/फ़ोल्डर बनाया और जार जोड़ा।
  2. सही> क्लिक

स्रोत फ़ोल्डर के रूप में जोड़ें मैं एक के पुनर्निर्माण की कोशिश की और यह विफल रहा है। मैंने libs/निर्देशिका को स्रोत फ़ोल्डर के रूप में हटा दिया और बिल्ड पथ में 3 जार फ़ाइलों को हटा दिया। फिर मैंने libs/फ़ोल्डर को फिर से जोड़ा, और प्रत्येक जार को libs/फ़ोल्डर में बिल्ड पथ में जोड़ा। अब यह उम्मीद के अनुसार काम करता है। यह एक अजीब कामकाज है लेकिन यह मेरे लिए काम करता है।

0

पोस्टरिटी के लिए, मुझे अभी यह त्रुटि मिली क्योंकि मैं Arrays.copyOf() का उपयोग कर रहा था जो जावा 1.5 द्वारा समर्थित एक विधि नहीं है जो एंड्रॉइड लेवल 4 के अनुरूप है। क्योंकि मैं 1.6 के तहत विकसित पुस्तकालयों सहित चल रहा था, उन्होंने ठीक संकलित किया। मैंने केवल समस्याओं को देखा जब मैंने कक्षा को अपने एंड्रॉइड प्रोजेक्ट पर प्रश्न में स्थानांतरित कर दिया - तब त्रुटि को हाइलाइट किया गया।

Uncaught handler: thread main exiting due to uncaught exception 
java.lang.VerifyError: com.j256.ormlite.dao.BaseDaoImpl$DaoConfigArray 
    at com.j256.ormlite.dao.BaseDaoImpl$1.initialValue(BaseDaoImpl.java:71) 
    at com.j256.ormlite.dao.BaseDaoImpl$1.initialValue(BaseDaoImpl.java:1) 
    at java.lang.ThreadLocal$Values.getAfterMiss(ThreadLocal.java:429) 
    at java.lang.ThreadLocal.get(ThreadLocal.java:66) 

कि लाइन और उस वर्ग मैं एक new DaoConfigArray करने के लिए कोशिश कर रहा था पर निम्न पंक्ति था: क्या बना यह और भी जटिल है कि लाइन 71 एक ThreadLocal प्रारंभ की ओर इशारा करते था

// copyOf is only supported in Java >= 1.6 
doArray = Arrays.copyOf(daoArray, newLength); 

जो मैं विचार शुरुआत में समस्या का कारण था।

private static final ThreadLocal<DaoConfigArray> daoConfigLevelLocal 
    = new ThreadLocal<DaoConfigArray>() { 
    @Override 
    protected DaoConfigArray initialValue() { 
     return new DaoConfigArray(); 
    } 
}; 
3

Eclipse 4.x में, यदि आप इस समस्या का सामना, नीचे की कोशिश:

  1. विस्थापित सभी में 3th पक्ष जार शामिल उपयोगकर्ता-Libaray
  2. उपयोगकर्ता lib चाल ऊपर एंड्रॉयड lib से पहले और आदेश और निर्यात टैब में
  3. स्वच्छ इसकी जांच करें और
0

मैं दूर करने के लिए किया था चलाने के लिए फिर से बनाना आश्रित परियोजनाएं और इसके बजाय निर्भर परियोजनाओं को संकलित करना जार हैं और उन्हें libs फ़ोल्डर में शामिल करें।

2

मुझे एसडीके अपडेट के बाद यह समस्या है। कंपाइलर को मेरी बाहरी लाइब्रेरी में समस्याएं थीं। मैंने यह किया: प्रोजेक्ट पर राइट क्लिक करें, फिर "एंड्रॉइड टूल्स> suport लाइब्रेरी जोड़ें ..." यह मेरी प्रोजेक्ट लाइब्रेरी "android-support-v4.jar" पर स्थापित है।

3

मेरे मामले में, यह तब हुआ जब मैंने एक्लिप्स इंडिगो से एक्लिप्स जूनो में अपडेट किया: मुझे यकीन नहीं है कि असली कारण क्या है, लेकिन, मेरे एंड्रॉइड प्रोजेक्ट जो कि मैं लंबे समय से काम कर रहा हूं, काम बंद कर दिया वह अपवाद

के बाद घंटे ठीक करने की कोशिश करने के कुछ घंटे बाद, मुझे मेरे लिए समाधान मिला।

मेरे एंड्रॉइड प्रोजेक्ट में, मैं अन्य प्रोजेक्ट का उपयोग करता हूं (कहें, "माययूटील्स") जो एक ही वर्कस्पेस में है। > कॉन्फ़िगर पथ

निर्माण अब, टैब "आदेश और निर्यात" पर जाएं और "MyUtils" जांच कर ली है -

सही एंड्रॉयड परियोजना पर क्लिक करें -> पथ बिल्ड: तो, मैं निम्न कार्य करने की जरूरत है। यही है: मैं इस कष्टप्रद अपवाद से छुटकारा पा लिया।

+0

यही मेरे लिए तय है ... हमारे पास एक बड़ी परियोजना है इसलिए मैं चारों ओर गया और बस सब कुछ पर "निर्यात" ध्वज की जांच की। पिटा मुद्दा –

0

मुझे यकीन है कि मेरा कारण आपकी तुलना में अलग था, लेकिन चूंकि यह "एंड्रॉइड java.lang.VerifyError" की खोज करते समय शीर्ष हिट में से एक है, मैंने सोचा कि मैं इसे यहां पोस्टरिटी के लिए रिकॉर्ड करूंगा।

public class A { ... } 
public class B extends A { ... } 
public class C extends A { ... } 

और एक विधि है कि आपने क्या किया::

A[] result = null; 
if (something) 
    result = new B[cursor.getCount()]; 
else 
    result = new C[cursor.getCount()]; 

// Fill result 
... 

जब तक इस कोड को फ़ाइल में मौजूद था के रूप में, मैं एक VerifyError मिलेगा

मैं की तर्ज पर कुछ वर्गों के लिए किया था पहली बार इस विधि वाले वर्ग को लोड किया गया था। इसे दो अलग-अलग तरीकों से विभाजित करना (एक जो केवल बी के साथ निपटाता है, और केवल सी के साथ निपटाया जाता है) समस्या को हल करता है।

+1

और, वैसे, जिस तरह से मैं रूट करता हूं क्योंकि यह विधि निकायों (रिटर्न नल/0/झूठी के साथ प्रतिस्थापित) को तब तक टिप्पणी कर रहा था जब तक VerifyError चला गया, तब तक सामान वापस बहाल नहीं किया गया; फिर समस्या विधि के भीतर ऐसा ही करें। डीबग करने के लिए एक मजेदार तरीका नहीं है, निश्चित रूप से, लेकिन यह काम किया। – benkc

7

मुझे एक दिलचस्प मामला मिला। मैं का उपयोग करें:

<uses-sdk 
    android:minSdkVersion="9" 
    android:targetSdkVersion="18" /> 

इसलिए नए एंड्रॉयड 4 क्षमताओं के कुछ ImageView.setLayerType तरह Android 2.3 में implenented नहीं कर रहे हैं।

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
} 

यह दृष्टिकोण अपवाद हैंडलिंग के साथ भी इस्तेमाल किया जाना चाहिए:

} catch (NetworkOnMainThreadException nomte) { 
    // log this exception 
} catch (SocketTimeoutException socketTimeoutException) { 
    // log this exception 
} 

NetworkOnMainThreadException एंड्रॉयड 2 में लागू नहीं किया गया रनटाइम त्रुटि बस से बचने के लिए।3 इसलिए जब कक्षा (और पहले नहीं!) को अपवाद java.lang.VerifyError होता है।

+1

वही मेरे साथ हुआ। मैंने 'java.lang.ReflectiveOperationException' का उपयोग किया जो पुराने एंड्रॉइड संस्करणों (उदाहरण के लिए 4.2) में शामिल नहीं है, लेकिन लिंट ने मुझे इसके बारे में चेतावनी नहीं दी ... – WonderCsabo

+0

मेरे लिए समस्या यह है कि मेरा कोड 'कैमरा एक्सेस अपवाद' घोषित करता है, जो कि है एंड्रॉइड 5.0 में पेश किया गया, लेकिन जब मैं एंड्रॉइड 4.3 डिवाइस में चलाता हूं, तो VerifyError फेंक दिया जाता है। – Piasy

1

मुझे बहुत ही समस्या थी। मैंने जोड़ा था अपाचे पीओआई जार और समस्या तब दिखाई दी जब मैंने एंड्रॉइड एसडीके 22.3 में अपडेट किया।

मेरे पास एंड्रॉइड प्राइवेट लाइब्रेरीज़ की जांच की गई थी इसलिए एंड्रॉइड एसडीके के साथ यह आम समस्या नहीं थी। मैंने सभी अपाचे पीओआई जार अनचेक किया और एक-एक करके जोड़ा। मैंने पाया कि poi-3.9-20121203.jarpoi-ooxml-3.9-20121203.jar से पहले होना चाहिए। अन्यथा यह काम नहीं करेगा।

1

आप परीक्षण है, तो अपने build.grade फ़ाइल से इस लाइन बाहर टिप्पणी की कोशिश:

testCoverageEnabled = true 

मेरे लिए यह जो जावा 1.7 सुविधाओं, विशेष रूप से स्ट्रिंग स्विच बयान का उपयोग वर्गों पर की वजह से VerifyError अपवाद नहीं।

1

मुझे गिट खींचने के बाद भी यही समस्या थी।

समाधान: बिल्ड -> स्वच्छ परियोजना।

उम्मीद है कि इससे मदद मिलती है।

+1

वास्तव में कुछ भी खींच या नहीं किया था, लेकिन एक साफ किया, धन्यवाद! –

0

मेरे मामले में, यह त्रुटि तब होती है क्योंकि मेरी google-play-service नवीनतम नहीं है।

यदि आपकी परियोजना .jar में कुछ वर्ग का समर्थन नहीं करती है, तो यह त्रुटि होती है (उदा। ImageView.setLayerType, AdvertisingIdClient, आदि)।

1

मुझे एक और मामला मिला है।

शर्तें:

  • उपयोग Retrolambda (यकीन नहीं अगर यह आवश्यक है);
  • इंटरफ़ेस में एक स्थिर विधि बनाएं।

और परिणाम उछाल है! java.lang.Verify त्रुटि उस इंटरफ़ेस का उपयोग करने वाली कक्षा तक पहुंचने का प्रयास करते समय। एंड्रॉइड की तरह दिखता है (4.4। * मेरे मामले में) इंटरफेस में स्थिर तरीकों को पसंद नहीं करता है। इंटरफेस से स्थिर विधि को हटाने से VerifyError दूर जाता है।

7

यदि आप रेट्रोलंबडा का उपयोग कर रहे हैं तो आपने इंटरफ़ेस में एक स्थिर विधि जोड़ा हो सकता है (जिसे केवल जावा 8 में ही अनुमति दी गई है)।

6

यह भी क्योंकि संस्करणों, जहां यह अधिकतम 65K आकार तक सीमित है

ऊपर जारी करने के लिए संभावित समाधान

चरण 1 नीचे Lollypop पर सीमा त्रुटि को संदर्भित करने का हो सकता है: Add android-support-multidex.jar to your project. The jar can be found in your Android SDK folder /sdk/extras/android/support/multidex/library/libs

चरण 2: बढ़ाएँ अपने उदाहरण के लिए, मल्टीडेक्स अनुप्रयोग के साथ आवेदन

public class MyApplication extends MultiDexApplication 

चरण 3: ओवरराइड attachBaseContext

protected void attachBaseContext(Context base) { 
super.attachBaseContext(base); 
MultiDex.install(this); 
} 

चरण 4: अगले कदम आपके एप्लिकेशन के एंड्रॉयड भाग के लिए निम्न build.gradle

dexOptions { 
     preDexLibraries = false 
    } 

Step5 जोड़ने के लिए है: अन्त में , आपके ऐप्स के सामान्य भाग के निर्माण के बाद .gradle

afterEvaluate { 
    tasks.matching { 
     it.name.startsWith('dex') 
    }.each { dx -> 
     if (dx.additionalParameters == null) { 
     dx.additionalParameters = ['--multi-dex'] 
     } else { 
     dx.additionalParameters += '--multi-dex' 
     } 
    } 
} 

जानकारी के लिए, चेकआउट कृपया

https://developer.android.com/tools/building/multidex.html

+0

मेरे लिए काम किया !! एप्लिकेशन क्लास को "मल्टीडेक्स एप्लिकेशन" में बदलना न भूलें। – Ganesh

+0

आपने मुझे बड़ा समय आदमी बचाया। यह स्वीकार्य उत्तर होना चाहिए। –

0

मैं सिर्फ एक और स्थिति है कि यह तब होता है, न केवल नहीं libs dx 'एड के कारण की पहचान की। मेरे पास एक बहुत लंबा doInBackground mehtod के साथ एक AsyncTask है। किसी कारण से 145 से अधिक लाइनों के साथ इस विधि को तोड़ना शुरू हो गया। यह 2.3 ऐप पर हुआ। जब मैंने कुछ हिस्सों को तरीकों से समेकित किया, तो यह ठीक काम करता था।

तो उन लोगों के लिए जो कक्षा नहीं पा रहे थे जो सही नहीं थे dx 'ed, अपनी विधि की लंबाई को कम करने का प्रयास करें।

0

मेरे लिए, यह मुद्दा वास्तव में समाप्त हुआ कि मैं क्लास में कहीं भी मल्टी-कैच क्लॉज का उपयोग कर रहा था जो जावा 7 फीचर (और एपीआई 1 9 ++) है। तो यह सभी पूर्व -19 उपकरणों पर VerifyError के साथ दुर्घटनाग्रस्त हो जाएगा।

3

मैं 2.0.0-अल्फा 2 से 1.5.0 तक ग्रेड संस्करण को डाउनग्रेड करता हूं जो इस समस्या को हल करता है।

0

java.lang.VerifyError का मतलब है कि आपके संकलित बाइटकोड कुछ ऐसा है जो Android को रनटाइम पर नहीं मिल रहा है। यह सत्यापन त्रुटि मुझे केवल kitkat4.4 के साथ समस्याएं और कम संस्करण में कम संस्करण नहीं है, यहां तक ​​कि मैंने दोनों डिवाइसों में एक ही निर्माण चलाया। यह पता चलता है जब मैं पुराने संस्करण की जैक्सन JSON पार्सर इस्तेमाल किया java.lang.VerifyError

compile 'com.fasterxml.jackson.core:jackson-databind:2.2.+' 
compile 'com.fasterxml.jackson.core:jackson-core:2.2.+' 
compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.+' 

तब मैं dependancy नवीनतम संस्करण 2.2 के लिए 2.7 को कोर पुस्तकालय (बिना बदल गया है जब मैं शामिल core2.7 यह देता है सत्यापन त्रुटि), तो यह काम करता है। जिसका अर्थ है कोर के तरीके और अन्य सामग्रियों को डेटाबेस के नवीनतम संस्करण में स्थानांतरित किया गया है Databind2.7। यह मेरे मुद्दों को ठीक करता है।

compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.0-rc3' 
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.0-rc3' 
0

मेरे लिए यह compileSdkVersion और buildToolsVersion के बीच सहसंबंध में था। मैं था:

compileSdkVersion 21 
buildToolsVersion '19.1.0' 

मैं करने के लिए इसे बदल दिया है:

compileSdkVersion 21 
buildToolsVersion '21.1.2' 
0

मेरे लिए, यह compileSdkVersion की समस्या है।जब मैं एक विशिष्ट एंड्रॉयड आवेदन (https://github.com/android10/Android-AOPExample) में एपीआई स्तर 21 का इस्तेमाल किया:

compileSdkVersion 21 

java.lang.verifyerror हुआ। इसलिए मैंने compileSdkVersion को 1 9

compileSdkVersion 19 

यह अच्छी तरह से काम किया। मुझे लगता है कि यह एसडीके buildTools की समस्या हो सकती है, और यह ठीक लगता है जब एपीआई स्तर < 21.

संबंधित मुद्दे