2016-07-14 10 views
2

Ich versuche, ein MediaRouteButton in Xamarin Android zu implementieren, um ChromeCast-Geräte in dem Bereich zu finden, der die Android-Support-Bibliothek (NuGeT Paket) Ich habe eine Beispiel-App heruntergeladen (die funktioniert, das CastingCall-Projektbeispiel wird bereitgestellt, wenn die GooglePlayServices-Cast-Komponente heruntergeladen wird), aber wenn ich versuchte, den Code zu übertragen, wird beim Klicken auf die Schaltfläche folgender Fehler angezeigt:Xamarin - MediaRouteButton ShowDialog() -Methode löst NullPointerException (Xamarin.Android.Support.v7.MediaRouter)

[AndroidRuntime] java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference 
[AndroidRuntime] at android.support.v7.app.MediaRouteChooserDialog.onCreate(MediaRouteChooserDialog.java:167) 
[AndroidRuntime] at android.app.Dialog.dispatchOnCreate(Dialog.java:465) 
[AndroidRuntime] at android.app.Dialog.show(Dialog.java:288) 
[AndroidRuntime] at android.support.v4.app.DialogFragment.onStart(DialogFragment.java:406) 
[AndroidRuntime] at android.support.v4.app.Fragment.performStart(Fragment.java:1986) 
[AndroidRuntime] at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102) 
[AndroidRuntime] at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 
[AndroidRuntime] at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 
[AndroidRuntime] at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 
[AndroidRuntime] at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517) 
[AndroidRuntime] at android.os.Handler.handleCallback(Handler.java:739) 
[AndroidRuntime] at android.os.Handler.dispatchMessage(Handler.java:95) 
[AndroidRuntime] at android.os.Looper.loop(Looper.java:145) 
[AndroidRuntime] at android.app.ActivityThread.main(ActivityThread.java:6117) 
[AndroidRuntime] at java.lang.reflect.Method.invoke(Native Method) 
[AndroidRuntime] at java.lang.reflect.Method.invoke(Method.java:372) 
[AndroidRuntime] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
[AndroidRuntime] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

Hier ist ein Teil des Codes:

mediaRouteButton = FindViewById<Android.Support.V7.App.MediaRouteButton> (Resource.Id.mediaRouteButton); 
mediaRouter = MediaRouter.GetInstance (this); 
mediaRouteSelector = new MediaRouteSelector.Builder() 
      .AddControlCategory (MediaControlIntent.CategoryRemotePlayback) 
      .Build(); 
mediaRouteButton.RouteSelector = mediaRouteSelector; 

Der MediaRouteButton ist nicht ausgegraut, was bedeutet, dass er die richtigen Routen in der Umgebung erkennt (ich habe es nur überprüft, um sicherzustellen, und das MediaRouter-Objekt enthält die gleichen Routen wie in der Beispielanwendung), aber es scheint stürzt ab, wenn versucht wird, den Dialog zu erstellen, mit dem der Benutzer eine Route auswählen kann (MediaRouter.ShowDialog()). Ich konnte keine Lösung für diesen Fehler finden, da ich keinen Zugriff auf den Quellcode dieser Klasse habe, wo er abzustürzen scheint (MediaRouteChooserDialog). Ich habe sogar versucht, eine benutzerdefinierte Dialog-Factory (https://developer.android.com/reference/android/support/v7/app/MediaRouteDialogFactory.html) und eine benutzerdefinierte Klick-Listener zu implementieren, aber keiner von beiden schien zu funktionieren und es gab immer noch einen Fehler, wenn ich auf die Schaltfläche klickte.

Irgendwelche Ideen?

Antwort

1

Ich hatte das gleiche Problem heute plötzlich. Das Aktualisieren der Komponente auf 29.0.0.2 hat es behoben.

+0

Das Aktualisieren der Komponente und das Neuerstellen Ihres Projekts sollten dieses Problem beheben. (Normalerweise behebt das erneute Erstellen dieses Problem dieses Problem). –

Verwandte Themen