Описание проблемы:
Я сталкиваюсь с постоянной проблемой с локализацией трепета. Сборка последовательно терпит неудачу как локально, так и в действиях GitHub Ci с ошибками «файл не найден», связанные с автоматически генерируемыми файлами локализации (
Код: Выделить всё
app_localizations.dartконтекст и среда:
- ruluten /> версия DART: 3.7.2
- локальная ОС: Microsoft Windows [версия 10.0.26100.3775]
- ci/cd: github action /> Настройка локализации: с использованием встроенного инструмента Flutter's Gen_l10n (через Flutter: Generate: true в pubspec.yaml ).
Дополнительное наблюдение за локальным поведением:
локально, локализация работает только при конфигурации по умолчанию (т.е., когда выходной dir отсутствует в l10n.yaml и в подростках в приземлении в неверном порядке. .dart_tool/flutter_gen/gen_l10n/). Как только output-dir: lib/Generated_l10n устанавливается, и импорт настроен на пакет: uccelli_info_app/Generated_l10n/app_localizations.dart , сборка также не работает локально. /> [*]
Код: Выделить всё
pubspec.yamlКод: Выделить всё
name: uccelli_info_app
description: "Welcome to the Uccelli Society"
publish_to: 'none'
version: 1.0.44+1
environment:
sdk: '>=3.7.2
< /li>
[b]l10n.yamlКод: Выделить всё
# Flutter Internationalization Configuration
arb-dir: lib/l10n
template-arb-file: app_de.arb
output-localization-file: app_localizations.dart
output-class: AppLocalizations
output-dir: lib/generated_l10n # Generated files are explicitly placed here
< /code>
< /li>
[b]Example Import in .dartКод: Выделить всё
// CORRECTED IMPORT FOR GENERATED LOCALIZATION CODE
import 'package:uccelli_info_app/generated_l10n/app_localizations.dart';
[*]
Код: Выделить всё
.gitignoreКод: Выделить всё
# Ignored Flutter/Dart specific build/generated directories
# By default, Flutter generates files in .dart_tool.
# We explicitly allow generated_l10n to be tracked for CI workaround.
# The default /.dart_tool/ line is commented out.
# /.dart_tool/
[*] github github githeb
Код: Выделить всё
.github/workflows/android-release.yaml(этот рабочий процесс предназначен для сборки с уже преданными сгенерированными файлами.)
Код: Выделить всё
name: '📦 Build & Release APK'
on: [...]
permissions: [...]
env: [...]
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Flutter (stable channel)
uses: subosito/flutter-action@v1
with:
channel: stable
# caching: false # Implicitly no caching, as 'cache: true' was removed
# ... other setup steps (Java, Android SDK, Keystore) ...
- name: Clean Flutter project
working-directory: uccelli_info_app
run: flutter clean
- name: Clear Flutter pub cache # Aggressive cache clean
working-directory: uccelli_info_app
run: flutter pub cache clean --force
- name: Get Flutter dependencies (verbose)
working-directory: uccelli_info_app
run: flutter pub get --verbose
# Explicit gen-l10n step was REMOVED as generated files are committed
# - name: Generate localization files (verbose)
# working-directory: uccelli_info_app
# run: flutter gen-l10n --verbose
- name: Build release APK
working-directory: uccelli_info_app
run: flutter build apk --release
# ... Rest of the workflow (release creation, asset upload) ...
Steps Already Attempted (and their results):
- Comprehensive local cleanup steps before flutter run:
Closing the IDE. - Вручное удаление сборки/, .dart_tool/, pubspec.lock .
- .
Код: Выделить всё
flutter pub cache clean --force - Перезагрузка IDE и запуск Flutter Clean , Flutter Pub Get , Flutter Gen-L10N .
- Результат: Файлы физически создаются в lib/gened_l10n/. Тем не менее, IDE по -прежнему не распознает их через пакет: импорт, и локальная сборка не работает с «целью URI не существует».
Когда процесс построения трепетала постоянно не может найти сгенерированные файлы локализации, хотя:
- Они физически существуют в файловой системе в соответствии с gib -wrentsired и Code>. В Ci.
- Пакет путей импорта: используется your_app_name/Generated_l10n/app_localizations.dart (как определено по L10N.YAML Sput-Dir ).
и, несмотря на все агрессивные чистые и регенерационные шаги (локально и в CI). />
Подробнее здесь: https://stackoverflow.com/questions/796 ... d-works-lo
Мобильная версия