2015-02-03 9 views
11

यह मेरी त्रुटि लॉग 1.0.2एंड्रॉयड स्टूडियो java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB

02-03 13:05:23.831 8385-8385/com.******.*******E/AndroidRuntime﹕  FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB 
     at android.support.v4.app.NavUtils$NavUtilsImplJB.getParentActivityName(NavUtils .java:125) 
     at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:302) 
     at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:281) 
     at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:142) 
     at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123) 
     at com..******.*******.****.ActivityWelcome.onCreate(ActivityWelcome.java:33) 
     at android.app.Activity.performCreate(Activity.java:5104) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
     at android.app.ActivityThread.access$600(ActivityThread.java:141) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:5041) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
     at dalvik.system.NativeStart.main(Native Method) 

विन्यास

buildToolsVersion "21.1.2" 
android SDK TOOLS"24.0.2" 
multidex enabled 
predexLibraries =false 
incremental = true 
jumboMode = false 
    dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.google.android.gms:play-services:6.5.87' 
    compile 'com.google.code.gson:gson:2.3' 
    compile 'com.android.support:support-v4:[email protected]' 
    compile 'com.android.support:appcompat-v7:[email protected]' 
    compile project(':ViewPagerIndicator') 
    compile('de.keyboardsurfer.android.widget:crouton:[email protected]') { 
     exclude group: 'com.google.android', module: 'support-v4' 
    } 
    compile 'org.java-websocket:Java-WebSocket:1.3.0' 
} 

कैसे हल करने के लिए एंड्रॉयड स्टूडियो के साथ हासिल की है यह गलती? gradlew साफ मदद नहीं करता है। फ़ोल्डर्स हटाना भी काम नहीं कर रहा है। एंड्रॉइड स्टूडियो संकलन करते समय कोई त्रुटि नहीं दिखाता है।

+0

कुछ फोन पर उपयोगकर्ता मेरे ऐप के लिए भी इसी तरह की त्रुटि की रिपोर्ट करते हैं। कॉन्फ़िगरेशन इस तरह दिखता है: [यह] (https: //raw.githubusercontent।कॉम/संस्कृत-कोडर/स्टर्डिक्ट-डिक्शनरी-अपडेटेटर/ए 5 सी 213592 ए 3759e42ff96f0121839bb58fa1e1ed/ऐप/build.gradle) –

+0

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

+0

अल्फा, क्या आप पुष्टि कर सकते हैं या नहीं कि मैंने जो फिक्स सुझाया वह आपके सहकर्मी का उपयोग किया गया था? – Sam

उत्तर

41

मुझे यह समस्या थी और समाधान मिला - उत्तर आरटीएफएम है! यहां निर्देश दिए गए हैं: https://developer.android.com/tools/building/multidex.html

मल्टीडेक्सिंग एक नई सुविधा है और इसलिए प्री-लॉलीपॉप उपकरणों के साथ संगत होने के लिए एक समर्थन लाइब्रेरी की आवश्यकता होती है। आप अपने Gradle फ़ाइल निर्भरता के लिए निम्न जोड़ने की जरूरत:

compile 'com.android.support:multidex:1.0.0' 

इसके अलावा अपने Gradle फ़ाइल में multidex उत्पादन सक्षम:

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.0" 

    defaultConfig { 
     ... 
     minSdkVersion 14 
     targetSdkVersion 21 
     ... 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 
} 

और फिर अपने प्रकट करने के लिए multidex समर्थन आवेदन जोड़ें:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.android.multidex.myapplication"> 
    <application 
     ... 
     android:name="android.support.multidex.MultiDexApplication"> 
     ... 
    </application> 
</manifest> 

नोट: यदि आपका ऐप पहले से ही एप्लिकेशन क्लास को बढ़ाता है, तो आप attachBaseContext() विधि को ओवरराइड कर सकते हैं और मल्टीडे को कॉल कर सकते हैं x.install (यह) multidex सक्षम करने के लिए। अधिक जानकारी के लिए, MultiDexApplication संदर्भ दस्तावेज़ीकरण देखें।

@Override 
protected void attachBaseContext(Context context) { 
    super.attachBaseContext(context); 
    MultiDex.install(this); 
} 

फिर से, अधिक जानकारी के लिए ऊपर दिए गए निर्देश देखें ...

आशा इस मदद करता है

+0

मल्टीडेक्स समर्थन को "android.support.v4.app.NavUtilsJB NoClassDefFoundError" त्रुटि के साथ क्या करना है ?? अल्फा के प्रश्न में –

+0

मल्टीडेक्स चालू है। मेरा मानना ​​है कि यदि आप मैनफैक्स्ट सेट अप नहीं करते हैं क्योंकि मैंने दिखाया है कि अन्य डेक्स की लोड नहीं की जाएगी और इसलिए सिस्टम को कुछ कक्षाएं नहीं मिलेंगी। – Sam

+2

भगवान का शुक्र है, यह मेरी मदद करो! – govo

4

इस मुद्दे की वजह से घंटों के लिए फंस गया था लेकिन अंत में समाधान मिल गया।

चरण # 1:

dependencies { 
compile 'com.android.support:multidex:1.0.0' 
} 

चरण # 2:

defaultConfig { 
     multiDexEnabled true 
    } 

चरण # 3:

public class AppController extends Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     MultiDex.install(this); 
    } 
} 

मुबारक कोडिंग!

3

के बाद समाधान मेरे लिए काम किया:

  1. अपने default Config

  2. में multiDexEnabled = true जोड़े संकलन अपने निर्भरता

  3. Application class extend MultiDexApplication के बजाय सिर्फ Application

में जोड़ें 0
संबंधित मुद्दे