का कारण बनता है मैं अपने प्रोजेक्ट में Multidex
समर्थन सक्षम है और यह Android 5.0 और इसके बाद के संस्करण पर ठीक काम कर रहा था, लेकिन जब मैं एंड्रॉयड 4.3 के साथ और यह मेरे TwitterConfig
के लिए NoClassDefFoundError
देना शुरू नीचे मेरी ऐप का परीक्षण शुरू कर दिया।ट्विटर कपड़ा + MultiDex NoClassDefFoundError
मैं अपना Multidex
समर्थन अक्षम नहीं कर सकता। मुझे नहीं मिल रहा है कि मुझे यह मुद्दा क्यों मिल रहा है। नेट पर समाधान खोजने का प्रयास किया लेकिन मदद नहीं की।
यहां अपवाद है जो मुझे मिल रहा है।
java.lang.NoClassDefFoundError: com.twitter.sdk.android.core.TwitterAuthConfig$1
at com.twitter.sdk.android.core.TwitterAuthConfig.<clinit>(TwitterAuthConfig.java:39)
at MyApplication.onCreate(MyApplication.java:46)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4702)
at android.app.ActivityThread.access$1400(ActivityThread.java:168)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5493)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
at dalvik.system.NativeStart.main(Native Method)
यहाँ मेरी app.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
android {
packagingOptions {
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE.txt'
}
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "2g"
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:design:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'
compile 'com.android.support:cardview-v7:22.2.1'
compile 'com.android.support:support-v4:22.2.1'
compile project(':MPChartLib')
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
compile('com.twitter.sdk.android:twitter:[email protected]') {
transitive = true;
}
}
यहाँ MyApplication
कक्षा में मेरी ट्विटर संहिता है।
@Override
public void onCreate() {
super.onCreate();
//Configure twitter using Twitter key and Secret Key
TwitterAuthConfig authConfig =
new TwitterAuthConfig(TWITTER_KEY,
TWITTER_SECRET);
// add functionalities which we are using with Fabric
Fabric.with(this, new Crashlytics(), new Twitter(authConfig));
FacebookSdk.sdkInitialize(getApplicationContext());
// Initialize the SDK before executing any other operations,
// especially, if you're using Facebook UI elements.
}
यहां तक कि मैंने this समाधान भी कोशिश की लेकिन मदद नहीं की।
किसी भी संकेत या संदर्भ की सराहना की। Android 5.0 के लिए
धन्यवाद @Bhavesh: इस समाधान की कोशिश करेंगे, लेकिन मैं आप प्रकट में MultiDexApplication जोड़ने की बात नहीं मिला। क्या आप इसे थोड़ा विस्तारित कर सकते हैं? एक बार फिर धन्यवाद। –
देखें, जब आपके एप्लिकेशन में कोई भी कक्षा है जो एप्लिकेशन क्लास को विस्तारित करती है तो आप इसे मेन्यूफाइल फ़ाइल में सेट करने से अनदेखा कर सकते हैं। अब, यदि आपके पास कोई एप्लिकेशन क्लास नहीं है तो आप मेन्यूफ़ेस्ट फ़ाइल से सीधे इसका समर्थन सक्षम कर सकते हैं, तो मल्टीडेक्स –
के समर्थन को सक्षम करने के लिए आप दो तरह के वैकल्पिक तरीकों को मल्टीडेक्स.inस्टॉल (getTargetContext()) नहीं चाहिए; सुपर() कॉल के बाद बनें? – Jalpesh