2016-04-26 15 views
8

मैं एंड्रॉइड स्टूडियो 2.0 का उपयोग कर रहा हूं और आखिरी बार मैं jdk 7 को jdk 8 में अपग्रेड कर रहा हूं और मैं फ़ाइल क्रम में कुछ बदलाव कर रहा हूं लेकिन अब मुझे यह त्रुटि मिल रही हैइस त्रुटि को हल करने के लिए कैसे करें VFY: वर्चुअल विधि को हल करने में असमर्थ

E/InstantRun: Could not find slices in APK; aborting. 
I/dalvikvm: Could not find method android.content.Context.getSystemService, referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve virtual method 435: Landroid/content/Context;.getSystemService (Ljava/lang/Class;)Ljava/lang/Object; 
D/dalvikvm: VFY: replacing opcode 0x6f at 0x004b 
I/dalvikvm: Could not find method android.app.Activity.stopLockTask, referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve virtual method 231: Landroid/app/Activity;.stopLockTask()V 
D/dalvikvm: VFY: replacing opcode 0x6f at 0x00b9 
E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve check-cast 224 (Landroid/os/PersistableBundle;) in Lcom/mstr/malik/elbalaapps/ControlPanel; 
D/dalvikvm: VFY: replacing opcode 0x1f at 0x00f1 
I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve virtual method 417: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList; 
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0101 
I/dalvikvm: Could not find method android.app.Activity.onVisibleBehindCanceled, referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve virtual method 154: Landroid/app/Activity;.onVisibleBehindCanceled()V 
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0111 
I/dalvikvm: Could not find method android.app.Activity.onWindowStartingActionMode, referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve virtual method 158: Landroid/app/Activity;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0137 
E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.mstr.malik.elbalaapps.ControlPanel.access$super 
W/dalvikvm: VFY: unable to resolve check-cast 224 (Landroid/os/PersistableBundle;) in Lcom/mstr/malik/elbalaapps/ControlPanel; 
D/dalvikvm: VFY: replacing opcode 0x1f at 0x019a 

एक इस Gradle फ़ाइल

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "24.0.0 rc3" 

    defaultConfig { 
     applicationId "com.mstr.malik.elbalaapps" 
     minSdkVersion 18 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.3.0' 
} 

मैं त्रुटि को कैसे संभाल सकता है, मैं करने के लिए संकलन संकलन 'com.android.support:appcompat-v7:23.3.0' के संस्करण chanfe की कोशिश की है संकलित करें com.android.support:appcompat-v7:23.0.0 'यह भी दुर्घटनाग्रस्त है, मैं इसे कैसे कर सकता हूं? अग्रिम धन्यवाद

उत्तर

9

यदि आप एंड्रॉइड संस्करण रनटाइम में चेक इन करते हैं तो आप सुरक्षित रूप से इस चेतावनियों को अनदेखा कर सकते हैं। इसका मतलब यह है कि आपके पास उस विधि का संदर्भ है जो उस प्लेटफ़ॉर्म पर उपलब्ध नहीं है जहां आप वर्तमान में कोड चलाते हैं। आपको बस यह सुनिश्चित करने की ज़रूरत है कि आप पुराने प्लेटफ़ॉर्म पर नए एपीआई का उपयोग न करें। आम तौर पर लिंट आपको चेतावनी देगा अगर आप रिलीज बिल्ड में कुछ गलत करते हैं। जब तक आप इसे ध्यान में रखते हैं तो आपको इसके बारे में चिंता करने की आवश्यकता नहीं है।

बस इस तरह के एक क्रम स्विच के लिए एक उदाहरण के रूप

:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    // You can use here an API which was added in Lollipop. 
} 
+0

धन्यवाद, मैं वास्तव में आपकी मदद की सराहना करता हूं –

+0

मेरे मामले में यह काम करता है, लेकिन एप्लिकेशन को लोड करने में लंबा समय लगता है (3 या 4 सेकंड)। क्या इसे हल करने का कोई तरीका है? या कम से कम एक कामकाज? – Gatunox

3

इस गूगल एंड्रॉयड इंजीनियरों के अनुसार सामान्य है।

देखें https://code.google.com/p/android/issues/detail?id=198567

को यह तब होता है जब आप तैनात डिवाइस एपीआई स्तर की तुलना में अधिक एपीआई स्तर के खिलाफ संकलन। लॉग इंगित कर रहे हैं कि, कुछ विधियां उपलब्ध नहीं हैं और वर्चुअल मशीन वैकल्पिक कार्यान्वयन के साथ उन्हें बदलने जा रही है।

बीआर, निक

1

मैं एक ही चेतावनी और फिर घातक NoClassDefFoundError है। यह समस्या एंड्रॉइड-प्लगइन के बहु-डीएक्स मोड में डीएक्स जेनरेट की गई फाइलों से जा सकती है। सभी वर्ग जो नहीं मिल सका एक पैकेज में थे। पैकेज को 2 डीएक्स-फाइलों के बीच विभाजित किया गया था। एक समाधान मेनडिएक्सलिस्ट फ़ाइल उत्पन्न कर रहा है जहां मैंने केवल अनसुलझे कक्षाएं शामिल कीं जो एक डीएक्स-फाइल में शामिल हो गईं। अधिक जानकारी के लिए here भी देखें।

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