Iconize
Iconize copied to clipboard
IconToolbarItem issue
having issue with toolbar icons crashing app with this error message
unable to convert instance of type 'Android.Support.V7.View.Menu.ActionMenuItemView' to type 'Android.Support.V7.Widget.Toolbar'
I've got the same issue with using IconToolbarItem
for Android:
09-20 11:07:21.110 I/MonoDroid(22425): UNHANDLED EXCEPTION:
09-20 11:07:21.153 I/MonoDroid(22425): System.InvalidCastException: Unable to convert instance of type 'Android.Support.V7.View.Menu.ActionMenuItemView' to type 'Android.Support.V7.Widget.Toolbar'.
09-20 11:07:21.153 I/MonoDroid(22425): at Java.Interop.JavaObjectExtensions.CastClass (Android.Runtime.IJavaObject instance, System.Type resultType) [0x0005d] in <2e14bb2dd93a405e81838369ed72695b>:0
09-20 11:07:21.153 I/MonoDroid(22425): at Java.Interop.JavaObjectExtensions._JavaCast[TResult] (Android.Runtime.IJavaObject instance) [0x0002f] in <2e14bb2dd93a405e81838369ed72695b>:0
09-20 11:07:21.153 I/MonoDroid(22425): at Java.Interop.JavaObjectExtensions.JavaCast[TResult] (Android.Runtime.IJavaObject instance) [0x00000] in <2e14bb2dd93a405e81838369ed72695b>:0
09-20 11:07:21.153 I/MonoDroid(22425): at Android.Runtime.Extensions.JavaCast[TResult] (Android.Runtime.IJavaObject instance) [0x00000] in <2e14bb2dd93a405e81838369ed72695b>:0
09-20 11:07:21.153 I/MonoDroid(22425): at Android.Views.View.FindViewById[T] (System.Int32 id) [0x00007] in <2e14bb2dd93a405e81838369ed72695b>:0
09-20 11:07:21.153 I/MonoDroid(22425): at Plugin.Iconize.PlatformExtensions.UpdateToolbarItems (Xamarin.Forms.Page page, Android.Views.View view) [0x00000] in C:\projects\iconize\src\Plugin.Iconize.Android\PlatformExtensions.cs:100
09-20 11:07:21.153 I/MonoDroid(22425): at Plugin.Iconize.IconNavigationRenderer.OnUpdateToolbarItems (System.Object sender) [0x00000] in C:\projects\iconize\src\Plugin.Iconize.Android\Renderers\IconNavigationRenderer.cs:79
09-20 11:07:21.153 I/MonoDroid(22425): at Plugin.Iconize.IconNavigationRenderer.OnAttachedToWindow () [0x00018] in C:\projects\iconize\src\Plugin.Iconize.Android\Renderers\IconNavigationRenderer.cs:24
09-20 11:07:21.153 I/MonoDroid(22425): at Android.Views.View.n_OnAttachedToWindow (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in <2e14bb2dd93a405e81838369ed72695b>:0
09-20 11:07:21.153 I/MonoDroid(22425): at (wrapper dynamic-method) System.Object:a3a715a6-2d9c-4b32-ab92-431950d8659e (intptr,intptr)
09-20 11:07:21.158 D/Mono (22425): Assembly Ref addref HockeySDK.AndroidBindings[0xa9dfb080] -> System[0x99f7d020]: 16
09-20 11:07:21.178 W/art (22425): JNI RegisterNativeMethods: attempt to register 0 native methods for android.runtime.JavaProxyThrowable
View.xaml:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Name="Page"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Dropby_Portable.Views.Tasks.TaskDetail"
xmlns:iconize="clr-namespace:Plugin.Iconize;assembly=Plugin.Iconize"
Title="{Binding name}">
<ContentPage.ToolbarItems>
<iconize:IconToolbarItem Icon="fa-500px" IsVisible="true" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout>
<Label Text="{Binding name}" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
Open
var taskDetail = new TaskDetail((TaskModel)task);
Navigation.PushModalAsync(new IconNavigationPage(taskDetail));
Since both IconImage
and IconLabel
are working fine I doubt if this has anything to do with the setup of the package. Any solution for this error?
Edit: I'm using 2.0.0.29-beta
I have a solution for my issue, the issue was that I did not initialize the specific Android implementation with the right Resources.
NuGet installed (In PCL, Android and iOS):
- Xam.Plugin.Iconize (2.0.0.29-beta)
- Xam.Plugin.Iconize.FontAwesome
MainActivity.cs (Android)
global::Xamarin.Forms.Forms.Init(this, bundle);
Plugin.Iconize.Iconize.Init(Resource.Id.toolbar, Resource.Id.sliding_tabs); // Could also be Resource.Id.tabs
LoadApplication(new App());
View.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Name="Page"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:iconize="clr-namespace:Plugin.Iconize;assembly=Plugin.Iconize">
<ContentPage.ToolbarItems>
<iconize:IconToolbarItem Icon="fa-500px" />
</ContentPage.ToolbarItems>
</ContentPage>