Stworzyłem aplikację Xamarin Forms. Używam wielościeżkowego dla Androida (wiele bibliotek). Używam pliku multidex.keep z opcją MultiDexMainDexList. Teraz wdrożenie to praca. Ale pojawia się wyjątek w trybie debugowania:Xamarin Android z obsługą wielu kamer - błąd w trybie debugowania
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()
Do analizy używam - dex2jar i Java Decompiler (o tym article). Ale teraz nie wiem, czego szukać i jakie są problemy.
Wszelkie pomysły?
Tak dzieje się w konfiguracji 'Debugowanie'. Powyższy wyjątek bardziej przypomina problem z połączeniem z miękkim debuggerem. Ponieważ w powyższym śladzie nie ma śladu żadnego Zadania Multidex, nie chcę powiedzieć, że jest on powiązany z Multidex, dopóki nie osiągniemy minimalnej reprodukcji. Czy możesz dodać jeden do swojego posta? –
Cześć, Jon. Mój debugger działa teraz! To był problem z moim projektem. Mam XF 2.3.4.247 w moim projekcie. Zainstalowałem XF 2.3.5.239 (pre), a następnie usunąłem i zainstalowałem stabilną wersję 2.3.4.247. I po tym debugowaniu działało. Dziękujemy za bloga - to bardzo przydatne informacje. Czekam na twoją książkę o Xamarin Android. – FetFrumos