2017-06-11 13 views
10

मैंने ज़ैमरिन फॉर्म ऐप बनाया। मैं एंड्रॉइड (कई पुस्तकालयों) के लिए मल्टीडेक्स का उपयोग करता हूं। मैं multidex.keep फ़ाइल का उपयोग MultiDexMainDexList विकल्प के साथ करता हूं। अब तैनाती काम है। लेकिन मैं डिबग मोड में अपवाद:मल्टीडेक्स के साथ एक्समरिन एंड्रॉइड - डीबग मोड में बग

System.ArgumentException: The offset and length have exceeded the bounds of the array or the counter value exceeds the number of elements from the pointer to the end of the original collection. 
в System.Buffer.BlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count) 
в Mono.Cecil.Metadata.GuidHeap.Read(UInt32 index) 
в Mono.Cecil.MetadataReader.InitializeCustomDebugInformations() 
в Mono.Cecil.MetadataReader.GetCustomDebugInformation(ICustomDebugInformationProvider provider) 
в Mono.Cecil.Cil.PortablePdbReader.Read(MethodDefinition method) 
в Mono.Cecil.Cil.CodeReader.ReadMethodBody() 
в Mono.Cecil.Cil.CodeReader.ReadMethodBody(MethodDefinition method) 
в Mono.Cecil.MethodDefinition.<>c.<get_Body>b__41_0(MethodDefinition method, MetadataReader reader) 
в Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TRet& variable, TItem item, Func`3 read) 
в Mono.Cecil.MethodDefinition.get_Body() 
Mono.Cecil.MethodDefinition.get_DebugInformation() 
в Mono.Debugging.Soft.SoftDebuggerSession.LoadPdbType(TypeDefinition type, Dictionary`2 fileToSourceFileInfos) 
в Mono.Debugging.Soft.SoftDebuggerSession.LoadPdbFile(String assemblyFileName, String pdbFileName) 
в Mono.Debugging.Soft.SoftDebuggerSession.LoadDebugFile(String assemblyFileName, String debugFileName, Func`3 loadDebugFile) 
в Mono.Debugging.Soft.SoftDebuggerSession.CheckBetterMatch(TypeMirror type, String file, Int32 line, Int32 column, Location found) 
в Mono.Debugging.Soft.SoftDebuggerSession.FindLocationByMethod(MethodMirror method, String file, Int32 line, Int32 column, Boolean& insideTypeRange) 
в Mono.Debugging.Soft.SoftDebuggerSession.FindLocationByType(TypeMirror type, String file, Int32 line, Int32 column, Boolean& genericMethod, Boolean& insideTypeRange) 
в Mono.Debugging.Soft.SoftDebuggerSession.ResolveBreakpoints(TypeMirror type) 
в Mono.Debugging.Soft.SoftDebuggerSession.HandleTypeLoadEvents(TypeLoadEvent[] events) 
в Mono.Debugging.Soft.SoftDebuggerSession.HandleEventSet(EventSet es) 
в Mono.Debugging.Soft.SoftDebuggerSession.EventHandler() 

विश्लेषण मैं उपयोग के लिए - dex2jar और जावा Decompiler (इस article द्वारा)। लेकिन अब मुझे नहीं पता कि क्या देखना है और क्या समस्याएं हैं।

कोई विचार?

+0

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

+0

हाय, जॉन। मेरा डीबगर अब काम कर रहा है! यह मेरी परियोजना के साथ एक समस्या थी। मेरे पास मेरी परियोजना में एक्सएफ 2.3.4.247 है। मैंने एक्सएफ 2.3.5.239 (प्री) स्थापित किया, और फिर इसे हटा दिया और स्थिर संस्करण 2.3.4.247 स्थापित किया। और उसके बाद डीबगिंग काम किया। आपके ब्लॉग के लिए धन्यवाद - यह बहुत उपयोगी जानकारी है। मैं ज़ैमरिन एंड्रॉइड के बारे में आपकी पुस्तक का इंतजार कर रहा हूं। – FetFrumos

उत्तर

0

मैंने इस समस्या को हल किया।

  1. मैं पीसीएल पुस्तकालय इस्तेमाल किया:

    इस विस्तार से वर्णन मेरे उपयोगकर्ता मामला है।

  2. मुझे संस्करण 4.0 में Azure मोबाइल क्लाइंट अपडेट करने की आवश्यकता है। यह संस्करण केवल पीसीएल समर्थित नहीं है .NET मानक। 1.4।
  3. लेकिन मेरे पास एक्समरिन फॉर्म के साथ विंडोज फोन प्रोजेक्ट है। WP समर्थित नहीं है .NET मानक 1.4
  4. मैं अपने समाधान (.NET मानक 1.4) में नई लाइब्रेरी जोड़ता हूं। मैंने लिंक के रूप में अपने पीसीएल से इस लाइब्रेरी में फाइलें जोड़ दीं।
  5. फिर यह त्रुटि हुई। सबसे पहले यह एक अस्थायी बग था - लेकिन फिर यह स्थायी था।
  6. मैंने इस त्रुटि के कारण की तलाश में दो पूर्ण कार्य दिवस बिताए। मुझे एक जगह मिली जहां आवेदन गिर रहा था।
  7. मैंने अपनी लाइब्रेरी (.Net मानक) से संबंधित फ़ाइल को हटा दिया, और फिर इसे जोड़ा। अब डिबगिंग काम करता है।
संबंधित मुद्दे