java - किसी डिवाइस पर डिबगिंग के दौरान 'सोर्स कोड बाईटेकोड से मेल नहीं खाता।'




android android-studio (8)

AOSP में इसके लिए एक खुला मुद्दा है, जहां कुछ उपयोगकर्ताओं ने संभावित समाधान दिए हैं: https://code.google.com/p/android/issues/detail?id=225199&sort=-id&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

वहां दिए गए संभावित समाधान (इस पोस्ट की तारीख के अनुसार) हैं:

  • बिल्ड-> क्लीन पर क्लिक करें
  • इंस्टैंट रन अक्षम करें, सेटिंग में> बिल्ड, एक्ज़ीक्यूशन, परिनियोजन

मेरे पास एक ऐप है जिसे मैं एपीआई स्तर 21 के खिलाफ संकलित कर रहा हूं:

और फिर इसे एपीआई स्तर 23 के साथ एक वास्तविक डिवाइस पर डीबग करें:

समस्या यह है कि जब मैं एंड्रॉइड ओएस की अपनी कक्षाओं के माध्यम से डिबगिंग का प्रयास करता हूं, तो मुझे 'सोर्स कोड बाईटेकोड से मेल नहीं खाता' मिलता है। ये क्यों हो रहा है? एप्लिकेशन जिस डिवाइस पर चल रहा है, वह API स्तर 23 है, और स्रोत फ़ाइल डीबग की जा रही है स्तर 23 भी है।

मैं वास्तव में भ्रमित हूँ। क्या कोई समझा सकता है कि मैं इस संदेश को क्यों देख रहा हूं और मैं इसे कैसे ठीक कर सकता हूं?


आपको compileSdkVersion के समान एपीआई स्तर के साथ एक एंड्रॉइड एमुलेटर का उपयोग करना चाहिए। आपके मामले में आपको एपि स्तर 21 के साथ एंड्रॉइड एमुलेटर का उपयोग करना चाहिए।


प्रोजेक्ट सेटिंग्स> कलाकृतियों पर जाएं। उस कलाकृति का चयन करें जिसमें समस्या है। एक विकल्प है "प्रोजेक्ट बिल्ड में शामिल करें"। इसे जांचने (सक्षम) करने की आवश्यकता है। IntelliJ के पुराने संस्करणों के लिए यह विकल्प "बिल्ड ऑन मेक" है।


मेरा ऐप API LEVEL 29 पर संकलित किया गया है, लेकिन API LEVEL 28.I पर वास्तविक डिवाइस पर डिबगिंग को चेतावनी source code does not match the bytecode मिला है जो AndroidStudio में बाईटेकोड से source code does not match the bytecode । मैंने तय किया कि इन चरणों को सोचा था:

  1. प्राथमिकताएं> तत्काल रन पर जाएं: तत्काल रन को अनचेक करें

  2. बिल्ड> क्लीन बिल्ड पर जाएं

  3. एप्लिकेशन को फिर से चलाएँ

अब, डिबग सामान्य चलता है।


मैंने ब्लूटूथ लो एनर्जी (BLE) का उपयोग करने वाले एप्लिकेशन पर काम करते समय यहां दिए गए समाधानों की कोशिश की। मैंने कोशिश की,

  1. साफ बिल्ड
  2. अक्षम त्वरित रन
  3. अमान्य कैश / पुनरारंभ करें

ये सभी विफल रहे।

मैंने जो किया, उन बिंदुओं पर डिबग किया जहां मुझे लगा कि मुझे चेतावनी मिल रही है, मुझे अभी भी चेतावनी मिली है लेकिन आवेदन ठीक काम कर रहा था। आप चेतावनी की अवहेलना कर सकते हैं।


मैंने यहां दिए गए सभी समाधानों की कोशिश की और उनमें से किसी ने भी मेरे लिए काम नहीं किया। संस्करण 2019.1.3 में मैं सिर्फ कलाकृतियों को साफ और पुनर्निर्माण करता हूं और यह काम करता है; सबसे पहले Build -> Build Artifacts... -> <select your artifact> -> Clean करें फिर उसी जगह से Build या Rebuild करें पर क्लिक करें।


यह उस स्थिति में भी हो सकता है जब आपने ProGuard को सक्षम किया हो। BuildTypes में minifyEnabled झूठे, संकोचन स्रोत झूठे, useProguard झूठी सेट करें


यहाँ मेरा समाधान है

यदि आपको एक से अधिक संस्करण पुस्तकालय मिले हैं, तो यह मदद कर सकता है।

  1. काम के स्रोत कोड पर एक ब्रेकपॉइंट सेट करें
  2. कोड को ब्रेकपॉइंट पर चलने दें
  3. आपको ये टिप्स मिलेंगे

  4. ऐरो आइकन पर क्लिक करें

  5. आपको यह मिल जाएगा

  6. सही लिबास का चयन करने के लिए डबल क्लिक करें (आमतौर पर लिब का उच्चतम संस्करण सही है)

    यदि आपने गलती से "अक्षम" बटन पर क्लिक किया है, तो आप इसे डीबगर सेटिंग में सक्षम कर सकते हैं

यदि आपके पास चरण 3 में युक्तियां नहीं हैं, तो शायद आप जाँच सकते हैं कि आपने सेटिंग विकल्प की जाँच की है या नहीं।








android-6.0.1-marshmallow