yandexmobile / yandex-ads-unity-plugin

Yandex Mobile Ads Unity Plugin
Other
48 stars 9 forks source link

Ошибки "it is not a delegate type" при попытке использовать версию 2.7.0 #54

Closed breakmt closed 10 months ago

breakmt commented 1 year ago

После установки плагина версии 2.7.0 появляется много ошибок 2.6.0 такие ошибки не вызывает Unity 2021.3.19f

Assets\YandexMobileAds\Banner.cs(110,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Banner.cs(121,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Banner.cs(132,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Banner.cs(143,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Banner.cs(154,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Banner.cs(165,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(130,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(141,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(152,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(163,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(174,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(185,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(196,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(207,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\Interstitial.cs(218,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(135,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(146,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(157,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(168,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(179,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(190,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(201,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(212,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(223,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type

Assets\YandexMobileAds\RewardedAd.cs(234,56): error CS1660: Cannot convert lambda expression to type 'Action' because it is not a delegate type
mobile-ads-github commented 1 year ago

Спасибо за обратную связь! Можете пояснить, ошибки возникают сразу при импорте плагина или при сборке приложения? Сборка под iOS или под Android?

breakmt commented 1 year ago

Ошибки возникают сразу же после импорта плагина, до сборки дело не доходит

mobile-ads-github commented 1 year ago

К сожалению не можем у себя воспроизвести эти ошибки в пустом проекте.

А вы уверены, что у Вас в проекте нигде не переопределен класс Action? Начиная с версии 2.7.0 в пакете используется System.Action через using System, который нужен для функциональности вызова всех методов исключительно в главном потоке.

К примеру, если создать в проекте такой класс в общей области видимости

public class Action
    {
        public void Invoke()
        {

        }
    }

То будут ошибки, аналогичные Вашим.

Если это действительно Ваш случай, то мы можем переписать в коде плагина System.Action чтобы он точно не конфликтовал с кастомными классами в проекте

breakmt commented 1 year ago

Да, скорее всего так и есть, как вы написали. У меня в проекте есть свой Action :)

mobile-ads-github commented 1 year ago

В следующей версии добавим уточнение в коде, чтобы даже при переопределении системного Action таких ошибок не возникало