Iconize icon indicating copy to clipboard operation
Iconize copied to clipboard

IconToolbarItem issue

Open codingL3gend opened this issue 7 years ago • 2 comments

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'

codingL3gend avatar Jun 06 '17 19:06 codingL3gend

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

BertKooij avatar Sep 20 '17 09:09 BertKooij

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>

BertKooij avatar Sep 22 '17 17:09 BertKooij