документация выставки гласит, что можно исключить пакеты выставки из сборки Android, вызывая функцию useExpomodules в настройках проекта.
Код: Выделить всё
useExpoModulesКод: Выделить всё
// ...
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle")
// ...
useExpoModules([
searchPaths: [
'../../../packages'
],
exclude : [
'expo-module-template',
'expo-module-template-local',
'react-native-reanimated',
'expo-dev-menu-interface',
'expo-dev-menu',
'expo-dev-launcher',
'expo-dev-client',
'expo-maps',
'expo-network-addons',
'expo-splash-screen',
'@expo/ui',
'expo-mesh-gradient'
]
])
< /code>
В моем проекте Expo, используя SDK версию 52, я условно исключаю определенные пакеты из сборки Android. Например, мои настройки.gradle Код: Выделить всё
if (/* condition */) {
useExpoModules([
exclude: [/* List of excluded packages */]
])
} else {
useExpoModules()
}
Приведенное выше работает в SDK 52, однако SDK 53 (который я обновляю) изменяет, как использует expomodules и вызывается. Параметры с помощью свойств в классе. Это определено на: < /p>
Код: Выделить всё
// ...
open class ExpoAutolinkingSettingsExtension(
val settings: Settings,
@Inject val objects: ObjectFactory
) {
// ...
var exclude: List? = null
// ...
fun useExpoModules() {
SettingsManager(
settings,
searchPaths,
ignorePaths,
exclude
).useExpoModules()
}
// ...
}
< /code>
См. «Минимальный» шаблон выставочной экспозиции для примера того, как применяется плагин, и функцию называется: < /p>
// ...
plugins {
// ...
id("expo-autolinking-settings")
}
// ...
expoAutolinking.useExpoModules()
// ...
Код: Выделить всё
expoAutolinking.useExpoModules([ exclude: [/* List of excluded packages */] ])Не удалось найти метод useexpomodules () для аргументов [{exclide = [...]}] на расширении 'expoAutoling' of type expo.modules.plugin.expoAutolishing. /> < /blockquote>
Настройка expoAutoling.exclude < /code> < /h3>
Например: < /p>
Код: Выделить всё
// ...
if (/* condition */) {
expoAutolinking.exclude = [/* List of excluded packages */]
}
expoAutolinking.useExpoModules()
// ...
< /code>
Это также не работает, потому что пакеты, которые должны быть исключены, все еще включены (в соответствии с журналами сборки (зарегистрированы отсюда) и ошибки, исходящая из задачи из пакета, которая должна была быть исключена). < /p>
Я добавил журналы в следующие методы, чтобы зайти в список исключенных пакетов (списки Calling in Calling). /> [*]ExpoAutolinkingSettingsExtension.useExpoModulesКод: Выделить всё
SettingsManager.useExpoModulesПодробнее здесь: https://stackoverflow.com/questions/797 ... xpo-sdk-53
Мобильная версия