yandexmobile / yandex-ads-sdk-android

Other
80 stars 22 forks source link

API 30 and error: resource android:attr/lStar not found #126

Closed Str4tos closed 2 years ago

Str4tos commented 2 years ago

Добрый день. Я хочу использовать Yandex Ads 5.0.0, так как я должен использовать Yandex Metrica 4.1.0+. Однако я получаю ошибку сборки приложение:

Android resource linking failed
.../res/values/values.xml:2362:5-2389:25: AAPT: error: resource android:attr/lStar not found.

При следующих параметрах Gradle:

compileSdkVersion 30
buildToolsVersion '30.0.2'

defaultConfig {
   targetSdkVersion 30
   ...
}

Это происходит из-за того, что Yandex Ads 5.0.0 зависит от androidx.core:core-ktx:1.7.0, для которой минимальная версия SDK 31. Из-за собственных причин я не могу использовать compileSdkVersion 31. Возможно я могу использовать core-ktx версии 1.6.0?

Для этого нужно изменить зависимости следующим образом:

dependencies {
    implementation 'androidx.core:core-ktx:1.6.0'
    implementation ('com.yandex.android:mobileads:5.0.0') {
        exclude group: 'androidx.core', module: 'core'
        exclude group: 'androidx.core', module: 'core-ktx'
    }
    implementation 'com.yandex.android:mobmetricalib:4.1.1'
}

Однако у меня нету возможности проверить, приведет ли это к проблемам в работе Yandex Ads.

Если Yandex Ads может работать без проблем с версией androidx.core:core-ktx:1.6.0, то пожалуйста, снизьте требование в следующих релизах Yandex Ads. Спасибо за понимание.

sanekmin commented 2 years ago

Такая же проблема в Unity 2018, обновиться на 2019+ пока не можем, а Unity 2018 не умеет в API 31+

mobile-ads-github commented 2 years ago

Здравствуйте! Мы гарантируем стабильность на версии 1.7.0

sanekmin commented 2 years ago

Здравствуйте! Мы гарантируем стабильность на версии 1.7.0

Но как собрать на API 30? Сама библиотека Yandex-ads-5.0 не дает собраться на API 30. Сможете ли вы понизить это требование?

Red-Cat-Fat commented 2 years ago

Здравствуйте! Мы гарантируем стабильность на версии 1.7.0

Но как собрать на API 30? Сама библиотека Yandex-ads-5.0 не дает собраться на API 30. Сможете ли вы понизить это требование?

Вместо добавления строки

implementation 'com.yandex.android:mobileads:5.0.0'

Нужно вставить

implementation 'androidx.core:core-ktx:1.6.0'
implementation ('com.yandex.android:mobileads:5.0.0') {
    exclude group: 'androidx.core', module: 'core'
    exclude group: 'androidx.core', module: 'core-ktx'
}

Оно соберётся, но работоспособность от Yandex не гарантируется)

mobile-ads-github commented 2 years ago

Как обходной маневр, можно использовать следующее для понижения версии для совместимости с 30 апи:


configurations.all {
    resolutionStrategy {
        force 'androidx.core:core:1.6.0'
        force 'androidx.core:core-ktx:1.6.0'
    }
}

Однако мы рекомендуем обновление до targetSdkVersion до 31, поскольку у Google есть ограничения на выпуск обновлений для приложений с устаревшей targetSdkVersion. Подробнее: https://developer.android.com/google/play/requirements/target-sdk