error CS1502: The best overloaded method match
How can i fix this error? this error shows up when i want to building game apk
1# (161,41): error CS1502: The best overloaded method match for AndroidVideoAdsManager.RequestVideoAd(System.Action)' has some invalid arguments 2# (161,41): error CS1503: Argument #1' cannot convert System.Action<bool>' expression to type System.Action'
 using UnityEngine;
 using SBS.Core;
 using SBS.Miniclip;
 using System;
 using System.Collections;
 
 public class OnTheRunCoinsService : Manager<OnTheRunCoinsService>
 {
     #region Singleton instance
     protected static OnTheRunCoinsService instance = null;
 
     public static OnTheRunCoinsService Instance
     {
         get
         {
             return Manager<OnTheRunCoinsService>.Get();
         }
     }
     #endregion
 
     const bool LOGS_ARE_ENABLED = false;
 
     public const int EDITOR_FREE_COINS_REWARD = 100;
 
     public enum WatchVideoPlacement
     {
         MainMenuVideoAdsPlacement,
         IncentivisePopupVideoAdsPlacement,
         NotEnoughCoinsVideoAdsPlacement,
         ShopCoinsVideoAdsPlacement,
         SaveMeAdsPlacement
     }
 
     public enum VideoType
     {
         FreeCoins,
         SaveMe,
         Booster,
         FreeFuel
     }
 
     Action<bool> coinsRewardCallback;
 
     bool videoAdsAreEnabled;
     int coinsRewardPerVideo;
     int maxVideosPerDay;
     int maxBoosterVideosPerDay;
     int maxFreeFuelVideosPerDay;
     int maxFreeSaveMeVideosPerDay;
 
     bool Videos_ReachedMaxPerDay { get { return OnTheRunDaysCounterForAdvertising.Instance.VideosShownToday >= maxVideosPerDay; } }
     bool BoosterVideos_ReachedMaxPerDay { get { return OnTheRunDaysCounterForAdvertising.Instance.BoosterVideosShownToday >= maxBoosterVideosPerDay; } }
     bool FreeFuelVideos_ReachedMaxPerDay { get { return OnTheRunDaysCounterForAdvertising.Instance.FreeFuelVideosShownToday >= maxFreeFuelVideosPerDay; } }
     bool FreeSaveMeVideos_ReachedMaxPerDay { get { return OnTheRunDaysCounterForAdvertising.Instance.FreeSaveMeVideosShownToday >= maxFreeSaveMeVideosPerDay; } }
     
     int TodaysRemainingVideos { get { return maxVideosPerDay - OnTheRunDaysCounterForAdvertising.Instance.VideosShownToday; } }
 
     public int FreeCoinsReward { get { return coinsRewardPerVideo; } }
 
     #region Initialization Methods
 
     new void Awake()
     {
         base.Awake();
         DontDestroyOnLoad(gameObject);
         
         Init();
     }
         
     void Init()
     {
         Log("Init");
 
 #if UNITY_IPHONE
 #    if MC_COINS_SERVICE
         CoinsServiceBindings.Start();
         ObjCDispatcher.Instance.RegisterEvent("csReward", onCoinsServiceReward);
         ObjCDispatcher.Instance.RegisterEvent("csCloseNoReward", onCoinsServiceCloseWithoutReward);
         ObjCDispatcher.Instance.RegisterEvent("csDisableSound", (str) => { AudioListener.volume = 0.0f; });
         ObjCDispatcher.Instance.RegisterEvent("csEnableSound", (str) => { AudioListener.volume = 1.0f; });
 #   endif
 #elif UNITY_ANDROID
         gameObject.AddComponent<AndroidVideoAdsManager>();
 #endif
     }
 
     public void SetConfigParameters(bool _videoAdsAreEnabled, int _coinsRewardPerVideo, int _maxVideosPerDay, int _maxBoosterVideosPerDay, int _maxFreeFuelVideosPerDay, int _maxFreeSaveMeVideosPerDay)
     {
         Log("SetConfigParameters - videosEnabled: " + _videoAdsAreEnabled + " - coinsReward: " + _coinsRewardPerVideo + " - maxVideos/Day: " + _maxVideosPerDay + " - maxBooster/Day: " + _maxBoosterVideosPerDay + " - maxFreeFuel/Day: " + _maxFreeFuelVideosPerDay + " - maxFreeSaveMe/Day: " + _maxFreeSaveMeVideosPerDay);
 
         this.videoAdsAreEnabled = _videoAdsAreEnabled;
         this.coinsRewardPerVideo = _coinsRewardPerVideo;
         this.maxVideosPerDay = _maxVideosPerDay;
         this.maxBoosterVideosPerDay = _maxBoosterVideosPerDay;
         this.maxFreeFuelVideosPerDay = _maxFreeFuelVideosPerDay;
         this.maxFreeSaveMeVideosPerDay = _maxFreeSaveMeVideosPerDay;
     }
 
     public void OnTranslationsReady()
     {
         Log("Translations Ready");
 
         //LOCALIZATION
         
 #if UNITY_IPHONE && MC_COINS_SERVICE
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.TitleCongratulations,            ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_congrat")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.TitleSorry,                      ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_sorry")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.MessageWatchMore,                ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_another_video")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.MessageCurrentlyNoMoreAvailable, ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_not_available")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.MessageCurrentlyNotAvailable,    ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_not_available")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.ButtonLater,                     ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_later")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.ButtonWatchNow,                  ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_watch_now")));
         CoinsServiceBindings.SetDialogLocalizedText(CoinsServiceBindings.SystemDialogTextType.ButtonOk,                        ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_ok")));
 #endif
     }
 
     public string ReplaceCoinsSymbolWithValue(string str)
     {
         const string coins_symbol = "$coins$";
         return str.Replace(coins_symbol, coinsRewardPerVideo.ToString());
     }
 
     #endregion
 
     #region Video Request Public Methods
 
     public void OnFreeCoinsSelected()
     {
         Log("OnFreeCoinsSelected");
 
         coinsRewardCallback = FreeCoinsRewardCallback;
 
 #if UNITY_EDITOR
         onCoinsServiceReward(string.Empty);
 #elif UNITY_IPHONE
 #    if MC_COINS_SERVICE
         CoinsServiceBindings.Show_withDialogAtEnd(TodaysRemainingVideos);
 #    else
         OnTheRunFyberManager.Instance.LaunchRewardedVideo(coinsRewardCallback);
 #    endif
 #elif UNITY_ANDROID
         AndroidVideoAdsManager.Instance.RequestVideoAd(() => { FreeCoinsRewardCallback(true); });
 #endif
     }
 
     public void WatchVideoForCallback(Action<bool> callback)
     {
         Log("OnWatchVideoForCallback");
 
         coinsRewardCallback = callback;
 
 #if UNITY_EDITOR
         onCoinsServiceReward(string.Empty);
 #elif UNITY_IPHONE
 #    if MC_COINS_SERVICE
         CoinsServiceBindings.Show_noDialogAtEnd();
 #    else
         OnTheRunFyberManager.Instance.LaunchRewardedVideo(callback);
 #    endif
 #elif UNITY_ANDROID
         AndroidVideoAdsManager.Instance.RequestVideoAd(callback);
 #endif
     }
 
     #endregion
 
     #region Reward Callback Methods
 
     void onCoinsServiceReward(string param)
     {
         Log("onCoinsServiceReward - param: " + param);
 
         if (coinsRewardCallback != null)
             coinsRewardCallback(true);
     }
 
     void onCoinsServiceCloseWithoutReward(string param)
     {
         Log("onCoinsServiceCloseWithoutReward - param: " + param);
 
         if (coinsRewardCallback != null)
             coinsRewardCallback(false);
     }
 
     void FreeCoinsRewardCallback(bool success)
     {
         Log("FreeCoinsRewardCallback - success: " + success);
 
         if (success)
         {
             PlayerPersistentData.Instance.IncrementCurrency(PriceData.CurrencyType.FirstCurrency, coinsRewardPerVideo);
             Manager<UIRoot>.Get().UpdateCurrenciesItem();
 
 #if UNITY_ANDROID
             AndroidVideoAdsManager.Instance.NotifyCoinsReward();
 #endif
             OnTheRunDaysCounterForAdvertising.Instance.OnVideoAdShown(VideoType.FreeCoins);
         }
 
 #if UNITY_IPHONE
         TriggerFreeCoinsAlertDialog(success);
 #endif
     }
 
     #endregion
 
     #region iOS Free Coins Feedback Alert
     
 #if UNITY_IPHONE
 
     string freeCoinsDialog_congrats = string.Empty;
     string freeCoinsDialog_sorry = string.Empty;
 
     string freeCoinsDialog_watchMore = string.Empty;
     string freeCoinsDialog_noMoreAvailable = string.Empty;
 
     string freeCoinsDialog_buttonLater = string.Empty;
     string freeCoinsDialog_buttonWatchNow = string.Empty;
     string freeCoinsDialog_buttonOk = string.Empty;
 
     void TriggerFreeCoinsAlertDialog(bool success)
     {
         FreeCoinsDialogLazySetup();
 
         if (success)
             StartCoroutine(DelayedFreeCoinsAlertDialog());
     }
 
     IEnumerator DelayedFreeCoinsAlertDialog()
     {
         const float MAX_SECONDS_DELAY = 5.0f;
 
         Manager<UIRoot>.Get().ShowLoadingPopup();
 
         yield return new WaitForEndOfFrame();
         OnTheRunFyberManager.Instance.CacheRewardedVideo();
 
         float timeBefore = TimeManager.Instance.MasterSource.TotalTime;
         
         //Debug.Log ("--- --- --- ------------- DelayedFreeCoinsAlertDialog - start");
 
         while (TimeManager.Instance.MasterSource.TotalTime - timeBefore < MAX_SECONDS_DELAY)
         {
             //Debug.Log ("--- --- --- ------------- DelayedFreeCoinsAlertDialog - waiting - elapsed: " + (TimeManager.Instance.MasterSource.TotalTime - timeBefore).ToString());
             if (OnTheRunFyberManager.Instance.VideoRequestResponseIsReceived)
             {
                 //Debug.Log ("--- --- --- ------------- DelayedFreeCoinsAlertDialog - VideoRequestResponseIsReceived - stopping coroutine");
                 ShowFreeCoinsAlertView();
                 yield break;
             }
 
             yield return new WaitForEndOfFrame();
         }
         
         //Debug.Log ("--- --- --- ------------- DelayedFreeCoinsAlertDialog - time is up - calling ShowFreeCoinsAlertView");
         ShowFreeCoinsAlertView();
     }
 
     void ShowFreeCoinsAlertView()
     {
         //Debug.Log ("--- --- --- ------------- ShowFreeCoinsAlertView - IsVideoAdAvailable: " + IsVideoAdAvailable());
         //Debug.Log ("--- --- --- ------------- ShowFreeCoinsAlertView - flag details - videoAdsAreEnabled: " + videoAdsAreEnabled + " - AreServiceVideoAdsAvailable: " + AreServiceVideoAdsAvailable () + " -  Videos_ReachedMaxPerDay: " + Videos_ReachedMaxPerDay);
         //ObjCDispatcher.Instance.RegisterEvent("alertButtonClicked", onFreeCoinsAlertDialogClicked);
 
         Manager<UIRoot>.Get().HideLoadingPopup();
 
         var uiMan = UIManager.Instance;
         uiMan.PushPopup("VideoFeedbackPopup");
         if (IsVideoAdAvailable())
         {    //SBS.Miniclip.AlertViewBindings.AlertBox(freeCoinsDialog_congrats, freeCoinsDialog_watchMore, freeCoinsDialog_buttonWatchNow, new string[] { freeCoinsDialog_buttonLater });
                 
             //uiMan.FrontPopup.GetComponent<UIVideoFeedbackPopup>().SetupPopup(2, ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_congrat")), ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_another_video")));
             uiMan.FrontPopup.GetComponent<UIVideoFeedbackPopup>().SetupPopup(2, freeCoinsDialog_congrats, freeCoinsDialog_watchMore);
         }
         else
         {
             //SBS.Miniclip.AlertViewBindings.AlertBox(freeCoinsDialog_congrats, freeCoinsDialog_noMoreAvailable, freeCoinsDialog_buttonOk);
             //uiMan.FrontPopup.GetComponent<UIVideoFeedbackPopup>().SetupPopup(1, ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_sorry")), ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_sorry")));
             uiMan.FrontPopup.GetComponent<UIVideoFeedbackPopup>().SetupPopup(1, freeCoinsDialog_congrats, freeCoinsDialog_noMoreAvailable);
         }
     }
 
     void FreeCoinsDialogLazySetup()
     {
         if (string.IsNullOrEmpty(freeCoinsDialog_congrats))
             freeCoinsDialog_congrats = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_congrat"));
 
         if (string.IsNullOrEmpty(freeCoinsDialog_sorry))
             freeCoinsDialog_sorry = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_sorry"));
 
         if (string.IsNullOrEmpty(freeCoinsDialog_watchMore))
             freeCoinsDialog_watchMore = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_another_video"));
 
         if (string.IsNullOrEmpty(freeCoinsDialog_noMoreAvailable))
             freeCoinsDialog_noMoreAvailable = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_not_available"));
 
         if (string.IsNullOrEmpty(freeCoinsDialog_buttonLater))
             freeCoinsDialog_buttonLater = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_later"));
 
         if (string.IsNullOrEmpty(freeCoinsDialog_buttonWatchNow))
             freeCoinsDialog_buttonWatchNow = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_watch_now"));
 
         if (string.IsNullOrEmpty(freeCoinsDialog_buttonOk))
             freeCoinsDialog_buttonOk = ReplaceCoinsSymbolWithValue(OnTheRunDataLoader.Instance.GetLocaleString("popup_free_coins_ok"));
     }
 
     /*void onFreeCoinsAlertDialogClicked(string pressedButton)
     {
         ObjCDispatcher.Instance.RemoveEvent("alertButtonClicked");
 
         if (pressedButton.Equals(freeCoinsDialog_buttonWatchNow))
             StartCoroutine(DelayedWatchOneMoreVideo());
     }
 
     IEnumerator DelayedWatchOneMoreVideo()
     {
         for (int i = 0; i < 3; i++)
             yield return new WaitForEndOfFrame();
         
         OnTheRunFyberManager.Instance.LaunchRewardedVideo(FreeCoinsRewardCallback);
     }*/
 #endif
     #endregion
 
     #region Videos Availability Check Methods
 
     bool AreServiceVideoAdsAvailable()
     {
 #if UNITY_WP8 || UNITY_WEBPLAYER || UNITY_WEBGL
         return false;
 #elif UNITY_EDITOR
         return true;
 /*
 #    if MC_COINS_SERVICE
         return true;
 #   else
         return OnTheRunFyberManager.Instance.VideoIsReady;
 #   endif
 */
 #elif UNITY_IPHONE
 #    if MC_COINS_SERVICE
         return CoinsServiceBindings.AreVideoAdsAvailable();
 #   else
         return OnTheRunFyberManager.Instance.VideoIsReady;
 #   endif
 #elif UNITY_ANDROID
         AndroidVideoAdsManager.Instance.AreVideoAdsAvailable();
 #endif
         return false;
     }
 
     public bool IsVideoAdAvailable()
     {
         return videoAdsAreEnabled && AreServiceVideoAdsAvailable() && !Videos_ReachedMaxPerDay;
     }
 
     public bool IsBoosterVideoAvailable()
     {
         return IsVideoAdAvailable() && !BoosterVideos_ReachedMaxPerDay;
     }
 
     public bool IsFreeFuelVideoAvailable()
     {
         return IsVideoAdAvailable() && !FreeFuelVideos_ReachedMaxPerDay;
     }
 
     public bool IsFreeSaveMeVideoAvailable()
     {
         return IsVideoAdAvailable() && !FreeSaveMeVideos_ReachedMaxPerDay;
     }
     #endregion
 
     void Log(string logStr)
     {
         if (LOGS_ARE_ENABLED)
             Debug.Log("### Coins Service Manager - " + logStr);
     }
 }
 
              Answer by NoseKills · Dec 17, 2015 at 11:05 PM
Sounds like AndroidVideoAdsManager.Instance.RequestVideoAd(callback); doesn't want a callback with a bool parameter (Action ). It wants a callback without parameters ( Action ).
cannot convert System.Action<bool>' expression to type System.Action
you could do for example something like
 AndroidVideoAdsManager.Instance.RequestVideoAd(() => callback(false));
 
               So declare an anonymous function that calls callback with a either true or false every time. You choose which
Your answer
 
             Follow this Question
Related Questions
Why Resources.Load does not works in Build? 1 Answer
Refer same position using 2 cameras with different orthosize 0 Answers
How do I stop my timer by accessing a variable from another script? 2 Answers
Failed to sign APK package when connection with Android settings (Unity 2018.2) 0 Answers
How do I manually uninstall Unity WITHOUT using add/remove program? 0 Answers