2017-09-12 1 views
2

Ich arbeite an einer mobilen Android App mit Xamarin Forms und Visual Studio.Xamarin Formen Betrieb Kamera gibt leere Ausnahme

Ich verwende das CrossMedia Plugin, um Fotos in meiner mobilen App zu machen oder auszuwählen. Zuerst hatte ich Probleme mit der Initialisierung und dieses Problem schien durch das falsche Android SDK verursacht zu werden. Nachdem ich das SDK aktualisiert und alle Pakete aktualisiert hatte, konnte ich die Option "Foto auswählen" aktivieren, aber die Kamera funktioniert immer noch nicht und ich kann nicht herausfinden, was das verursacht.

Ich habe die folgende Methode;

Wenn ich jedoch den Code ausführe, bekomme ich eine leere Ausnahme, es heißt nur '(null)';

enter image description here

Die Debug-Fenster von Visual Studio gibt mir eine Menge Informationen, aber die einzige wirkliche Ausnahme, die ich hier sehe, ist eine ‚InvocationException‘;

InspectorDebugSession(0): HandleTargetEvent: TargetHitBreakpoint 
InspectorDebugSession(0): StateChange: EntryPointBreakpointRegistered -> EntryPointBreakpointHit 
InspectorDebugSession(0): AgentBridge.InjectAssembly: /mnt/shell/emulated/0/Android/data/MyFirstAppPackage.MyFirstAppPackage/files/.__override__/inspector-temp/Xamarin.Interactive.dll 
InspectorDebugSession(0): AgentBridge.InjectAssembly: Mono.Debugger.Soft.InvocationException: Exception of type 'Mono.Debugger.Soft.InvocationException' was thrown. 
    at Mono.Debugger.Soft.InvocationsAPI.EndInvokeMethodInternalWithResultImpl(IAsyncResult asyncResult) 
    at Xamarin.Interactive.IdeSupport.AgentBridge.InjectAssembly(String agentAssemblyPath) in C:\d\lanes\4699\fec6f88f\source\xamarinvs\External\inspector-ide-integration\Xamarin.Interactive.IdeSupport\AgentBridge.cs:line 55 
    at Xamarin.Interactive.IdeSupport.InspectorDebuggerSession.<HandleTargetEvent>b__26_0(Object <p0>) in C:\d\lanes\4699\fec6f88f\source\xamarinvs\External\inspector-ide-integration\Xamarin.Interactive.IdeSupport\InspectorDebuggerSession.cs:line 242 
InspectorDebugSession(0): StateChange: EntryPointBreakpointHit -> Error 
InspectorDebugSession(0): Disposed 

Ich bin dies schon seit geraumer Zeit zu versuchen, herauszufinden, beschäftigt, aber ich bin auf diesem im Moment ganz fest. Ich habe auch Remote-Debugging versucht, indem ich ein Samsung Galaxy S4 Mini an meinen Computer anschließe, aber es gibt mir den gleichen Fehler. Was mache ich hier falsch?

+0

vielleicht ein Debugging-Artefakt. Ich habe schon gesehen, dass die Kombination von Mono, Emulator/Gerät und Visual Studio noch merkwürdiger ist. Probieren Sie 'Debug.Write (exception.ToString());' anstelle von 'throw' aus und sehen Sie, ob etwas Nützliches ausgegeben wird. – dlatikay

+0

Ich lief Ihre Funktion ohne Probleme auf Android-Emulator, es hat funktioniert. Es ist bekannt, Problem mit Variablen mit dem gleichen Namen in einer Funktion. Sie haben 2 "Ausnahme" -Variablen. Chnage eins zu "ex1" und du wirst eine Ausnahme sehen können. –

+0

Wie Yuri sagte, gibt es zwei Arten von Ausnahmen: 'System.Exception' und' Java.Lang.Exception'. Ich weiß nicht, welchen Typ "Exception" Sie verwenden, aber es scheint, dass die Ausnahme, die Sie fangen, nicht zu der Ausnahme gehört, die Sie verwenden. –

Antwort

0

Ich habe dieses Problem gelöst, indem ich einfach die richtige Android-Version für die Kompilierung ausgewählt habe. Die Plugin-Dokumentation sagt, dass die Kompilier-Version von Android auf Android 6.0 eingestellt werden muss, ich hatte es auf 7.0 eingestellt, weil ich dachte, das wäre möglich. Aber es ist nicht.

Auch die Ziel-Android-Version wurde auf eine höhere Version eingestellt. Wenn Sie beide auf Android 6.0 einstellen, wurde das Problem behoben.

Weitere Informationen finden Sie in der Dokumentation here.