xamarin / AndroidSupportComponents

Xamarin bindings for Android Support libraries - For AndroidX see https://github.com/xamarin/AndroidX
MIT License
146 stars 56 forks source link

Unable to convert instance of type 'Android.Support.V7.Widget.AppCompatTextView' to type 'Android.Support.V7.Widget.Toolbar' android 7.0 #58

Closed devpedrofranco closed 7 years ago

devpedrofranco commented 7 years ago

Xamarin 4.5.0.486 Xamarin.Android 7.3.1.2

Windows 10

Support Libraries Version: AppCompat 23.3.0 Java JDK 1.8

I have update the version of xamarin and now i'm gotting this erro on Android 7.0 I'm usuaing Xamarin.Forms in a PCL project.

This is my activity class:

protected override void OnCreate(Bundle bundle)
{
    System.Net.ServicePointManager.ServerCertificateValidationCallback += (o, certificate, chain, errors) => true;

    base.OnCreate(bundle);
    ConfigureHockeyApp();

    TabLayoutResource = Resource.Layout.tab;
    ToolbarResource = Resource.Layout.Toolbar;

    UserDialogs.Init(this);
    ImageCircleRenderer.Init();

    Xamarin.Forms.Forms.Init(this, bundle);

    App.Version = Application.Context.ApplicationContext.PackageManager.GetPackageInfo(Application.Context.ApplicationContext.PackageName, 0).VersionName;
    LoadApplication(new App());
}

My style xml :

<?xml version="1.0" encoding="utf-8" ?>
<resources>

  <style name="MainTheme" parent="MainTheme.Base">
  </style>
  <!-- Base theme applied no matter what API -->
  <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
    <item name="windowNoTitle">true</item>
    <!--We will be using the toolbar so no need to show ActionBar-->
    <item name="windowActionBar">true</item>
    <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette -->
    <!-- colorPrimary is used for the default action bar background -->
    <item name="colorPrimary">#39b549</item>
    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">#4d4d4d</item>
    <!-- colorAccent is used as the default value for colorControlActivated
         which is used to tint widgets -->
    <item name="colorAccent">#4d4d4d</item>
    <!-- You can also set colorControlNormal, colorControlActivated
         colorControlHighlight and colorSwitchThumbNormal. -->
    <item name="windowActionModeOverlay">true</item>

    <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
  </style>

  <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">#39b549</item>
  </style>

  <style name="MyTheme.Base" parent="Theme.AppCompat.Light">
  </style>

  <style name="MyTheme.Splash" parent ="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_screen_jpg</item>
  </style>
</resources>

And this is the full stack:

at Java.Interop.JavaObjectExtensions.CastClass (Android.Runtime.IJavaObject instance, System.Type resultType) [0x0005d] in <9ab9faae1b4b4f0da28e7c4ac61e2c78>:0 at Java.Interop.JavaObjectExtensions._JavaCast[TResult] (Android.Runtime.IJavaObject instance) [0x0002f] in <9ab9faae1b4b4f0da28e7c4ac61e2c78>:0 at Java.Interop.JavaObjectExtensions.JavaCast[TResult] (Android.Runtime.IJavaObject instance) [0x00000] in <9ab9faae1b4b4f0da28e7c4ac61e2c78>:0 at Android.Runtime.Extensions.JavaCast[TResult] (Android.Runtime.IJavaObject instance) [0x00000] in <9ab9faae1b4b4f0da28e7c4ac61e2c78>:0 at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.SetupToolbar () [0x00015] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\NavigationPageRenderer.cs:558 at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs1[TElement] e) [0x0009b] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\NavigationPageRenderer.cs:224 at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].SetElement (TElement element) [0x000f4] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:193 at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].Xamarin.Forms.Platform.Android.IVisualElementRenderer.SetElement (Xamarin.Forms.VisualElement element) [0x00027] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:129 at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element) [0x0001f] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\Platform.cs:289 at Xamarin.Forms.Platform.Android.AppCompat.Platform.AddChild (Xamarin.Forms.Page page, System.Boolean layout) [0x00015] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:250 at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x00089] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:239 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x0009b] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:374 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x00000] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:444 at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x00183] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:135 at SiagriMobile.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x0008e] in D:\Projetos\SiagriMobile\SiagriMobile\SiagriMobile.Droid\MainActivity.cs:30 at Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_osBundle (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <27c17fe440cf491ba8255bcefade6e02>:0 at (wrapper dynamic-method) System.Object:22f7ebf7-d694-404c-87d6-9dc44c55a3b5 (intptr,intptr,intptr)

This is my Toolbar, and axml file:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

I tryed to run in Android 6.0 and its working fine.

ernestochaves commented 6 years ago

What was it?

Nixon-Joseph commented 6 years ago

@PedroHFranco Running into this on release builds (when using proguard). How did you resolve it?

devpedrofranco commented 6 years ago

Sory, it was a long time ago, can't remember how i solve it.