Xamarin missing resources after migration

354 Views Asked by At

After upgrading MacOs X to Sierra I'm getting some problem building my solution.

This problems are related to the resource file, where I get 16 errors like:

 Error: Resource.Drawable does not contain a definition for "abc_ratingbar_full_material" 

And the same also for:

abc_search_view_text_min_width
abc_btn_rating_star_off_mtrl_alpha
abc_btn_rating_star_on_mtrl_alpha
abc_dialog_material_background_dark
abc_dialog_material_background_light
abc_ic_ab_back_mtrl_am_alpha
abc_ic_clear_mtrl_alpha
abc_ic_go_search_api_mtrl_alpha
abc_ic_menu_moreoverflow_mtrl_alpha
abc_ic_search_api_mtrl_alpha
abc_ic_voice_search_api_mtrl_alpha

Package.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AndroidEasingFunctions" version="1.0.2.0" targetFramework="MonoAndroid60" />
  <package id="AutoFitTextView" version="0.2.1.0" targetFramework="MonoAndroid60" />
  <package id="Bolts" version="1.4.0.1" targetFramework="monoandroid70" />
  <package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="monoandroid70" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid70" />
  <package id="NineOldAndroids" version="2.4.0" targetFramework="MonoAndroid60" />
  <package id="RecyclerViewAnimators" version="2.1.0.0" targetFramework="MonoAndroid60" />
  <package id="Refractored.PagerSlidingTabStrip" version="1.1.6" targetFramework="monoandroid70" />
  <package id="SharpZipLib.Portable" version="0.86.0.0003" targetFramework="MonoAndroid50" />
  <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Compat" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Core.UI" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Core.Utils" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.CustomTabs" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Design" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Fragment" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Media.Compat" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.v4" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.v7.AppCompat" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.v7.CardView" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.v7.RecyclerView" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Android.Support.Vector.Drawable" version="24.2.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Facebook.Android" version="4.16.1" targetFramework="monoandroid70" />
  <package id="Xamarin.Firebase.Common" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Ads" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Ads.Lite" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Analytics" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Analytics.Impl" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.AppIndexing" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Base" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Basement" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Clearcut" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Gass" version="32.961.0" targetFramework="monoandroid70" />
  <package id="Xamarin.GooglePlayServices.Tasks" version="32.961.0" targetFramework="monoandroid70" />
</packages>

How is it possible? Could it be I'm missing a reference to something?

1

There are 1 best solutions below

3
On BEST ANSWER

This depends on the version of support libs. Anything < 25.0.1 will download a cache and use that instead of your local SDK download, so please keep that in mind(As it requires the dependency of Xamarin.Build.Download). So since you are downloading a cache by using 24.2.1 support libs, you need to read and see the change diffs between support libraries. For example here is your exact problem:

https://developer.android.com/sdk/support_api_diff/23.2.0/changes/android.support.v7.appcompat.R.drawable.html

This demonstrates changes between 23.1.1 and 23.2.0.

It shows that the following fields were REMOVED:

int abc_btn_check_to_on_mtrl_000     
int abc_btn_check_to_on_mtrl_015     
int abc_btn_radio_to_on_mtrl_000     
int abc_btn_radio_to_on_mtrl_015     
int abc_ic_ab_back_mtrl_am_alpha     
int abc_ic_clear_mtrl_alpha  
int abc_ic_go_search_api_mtrl_alpha  
int abc_ic_menu_copy_mtrl_am_alpha   
int abc_ic_menu_cut_mtrl_alpha   
int abc_ic_menu_moreoverflow_mtrl_alpha  
int abc_ic_menu_paste_mtrl_am_alpha  
int abc_ic_menu_selectall_mtrl_alpha     
int abc_ic_menu_share_mtrl_alpha     
int abc_ic_voice_search_api_mtrl_alpha

As you can notice some of your problem resources are in this list. This means that you probably have a dependency in your project that relied on support libs 23.1.1 and does not support 24.2.1 that you currently have installed. Thus you will have to identify that problematic package and update it or ask the maintainer to update it to ensure compatibility.