Ошибка сборки expo SDK 52 для AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка сборки expo SDK 52 для Android

Сообщение Anonymous »

Я обновил свое приложение до Expo SDK 52, и сборки для iOS работают нормально, но сборка для Android не удалась из-за конфликтов слияния AndroidManifest.xml. Вот результат EAS:

Код: Выделить всё

[RUN_GRADLEW] FAILURE: Build failed with an exception.
[RUN_GRADLEW] * What went wrong:
[RUN_GRADLEW] Execution failed for task ':app:processReleaseMainManifest'.
[RUN_GRADLEW] > Manifest merger failed : Attribute property#android.adservices.AD_SERVICES_CONFIG@resource value=(@xml/ga_ad_services_config) from [com.google.android.gms:play-services-measurement-api:22.1.2] AndroidManifest.xml:32:13-58
[RUN_GRADLEW]       is also present at [com.facebook.android:facebook-core:18.0.0] AndroidManifest.xml:57:13-55 value=(@xml/ad_services_config).
[RUN_GRADLEW]       Suggestion: add 'tools:replace="android:resource"' to 
 element at AndroidManifest.xml to override.
Во время отладки я обнаружил, что удаление одного из @react-native-firebase/analytics или response-native-fbsdk-next решает проблему ( вероятно, потому что больше нет конфликта слияния манифеста).
Я попробовал добавить плагин конфигурации, чтобы добавить тег
, предложенный в этой ошибке, с помощью этого кода:

Код: Выделить всё

const { AndroidConfig, withAndroidManifest } = require('@expo/config-plugins');

function withAndroidManifestMergerRulesFix(config) {
return withAndroidManifest(config, async (config) => {
const mainApplication = AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults);
const resourceName = 'android.adservices.AD_SERVICES_CONFIG';
const conflictResolvingPropertyTag = {
$: {
'android:name': resourceName,
'android:resource': '@xml/gma_ad_services_config',
'tools:replace': 'android:resource',
},
};
if (mainApplication['property']) {
const existingPropertyTags = mainApplication['property'].filter(
(res) => res.$['android:name'] !== resourceName,
);
existingPropertyTags.push(conflictResolvingPropertyTag);
} else {
mainApplication['property'] = [conflictResolvingPropertyTag];
}

return config;
});
}

module.exports = withAndroidManifestMergerRulesFix;
Что приводит к другой ошибке:

Код: Выделить всё

[RUN_GRADLEW] FAILURE: Build failed with an exception.
[RUN_GRADLEW] * What went wrong:
[RUN_GRADLEW] Execution failed for task ':app:processReleaseResources'.
[RUN_GRADLEW] > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
[RUN_GRADLEW]    > Android resource linking failed
[RUN_GRADLEW]      ERROR: /private/var/folders/tq/fg72n0nj36g7klqjj4yh67980000gn/T/eas-build-local-nodejs/fdcabbe1-4a0d-4573-a0f6-52b8351035d0/build/android/app/src/main/AndroidManifest.xml:71:5-149: AAPT: error: resource xml/gma_ad_services_config (aka com.growmaple.android:xml/gma_ad_services_config) not found.
Мне пока не удалось найти ответ на эти проблемы. Самое близкое к тому, что я вижу, говорит о том, что решением было понижение версии com.google.android.gms:play-services-ads с 23.0.0 до 22.3.0 или возврат AGP до 8.2. 2. Я не уверен, что это будет подходящим вариантом для приложения Expo.
Ссылка: проблема Android Project при реализации admob
Я обновил мои библиотеки в приложении и изучил известные мне возможности. Мне нужны библиотеки Facebook и Firebase, поэтому удалить одну из них невозможно.
Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ld-failing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»