Сбоя локализации трепетаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Сбоя локализации трепета

Сообщение Anonymous »

Flutter Localization Build Faile (файл не найден) с выводом-dir конфигурацией
Описание проблемы:
Я сталкиваюсь с постоянной проблемой с локализацией трепета. Сборка последовательно терпит неудачу как локально, так и в действиях GitHub Ci с ошибками «файл не найден», связанные с автоматически генерируемыми файлами локализации (

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

app_localizations.dart
), когда я пытаюсь ссылаться на них, используя пакет: Импорт после настройки output-dir в моем L10N.yaml .
контекст и среда:
  • ruluten /> версия DART: 3.7.2
  • локальная ОС: Microsoft Windows [версия 10.0.26100.3775]
  • ci/cd: github action /> Настройка локализации: с использованием встроенного инструмента Flutter's Gen_l10n (через Flutter: Generate: true в pubspec.yaml ).
Подробные сообщения об ошибках (пример от локальной сборки и Github /> lib/main.dart:22:8: ошибка: цель URI не существует: 'Пакет: uccelli_info_app/Generated_l10n/app_localizations.dart'.try Создание файла, на который ссылается uri, или попробуйте использование uri для файла, который существует .// (аналогичные ошибки для других файлов. и т. д.) // За последующим «Applocalizations» не определены «ошибки и« целевой kernel_snapshot_program Не удалось: Исключение » (Примечание: иногда путь ошибки также указывает на/opt /...//flutter_gen-5.10.0 /..., несмотря на то, что пакет Fluther_GEN. Указывает глубокое несоответствие.)
Дополнительное наблюдение за локальным поведением:

локально, локализация работает только при конфигурации по умолчанию (т.е., когда выходной dir отсутствует в l10n.yaml и в подростках в приземлении в неверном порядке. .dart_tool/flutter_gen/gen_l10n/). Как только output-dir: lib/Generated_l10n устанавливается, и импорт настроен на пакет: uccelli_info_app/Generated_l10n/app_localizations.dart , сборка также не работает локально. /> [*]

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

pubspec.yaml
: [/b]

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

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
: [/b]

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

# 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
файлы (например, lib/main.dart , lib/pages/home_page.dart ): [/b]

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

// CORRECTED IMPORT FOR GENERATED LOCALIZATION CODE
import 'package:uccelli_info_app/generated_l10n/app_localizations.dart';
(этот импорт последовательно используется во всех соответствующих файлах .dart .)

[*]

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

.gitignore
(соответствующая часть): [/b]

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

# 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/
(папка lib/Generated_l10n/ не игнорируется и отслеживается GIT. Сгенерированные файлы физически существуют в этом пути в локальной файловой системе.)

[*] github github githeb

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

.github/workflows/android-release.yaml
-соответствующие шаги): [/b]
(этот рабочий процесс предназначен для сборки с уже преданными сгенерированными файлами.)

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

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 не существует».
[*] Различные подходы CI/CD:
Вопрос к сообществу:
Когда процесс построения трепетала постоянно не может найти сгенерированные файлы локализации, хотя:
  • Они физически существуют в файловой системе в соответствии с gib -wrentsired и Code>. В Ci.
  • Пакет путей импорта: используется your_app_name/Generated_l10n/app_localizations.dart (как определено по L10N.YAML Sput-Dir ).
    и, несмотря на все агрессивные чистые и регенерационные шаги (локально и в CI). />
Что может привести к тому, что процесс сборки Flutter (или компилятор DART) не сработает при разрешении пакета: URI для этих сгенерированных файлов в своем собственном пакете ? Существуют ли известны более глубокие проблемы с окружающей средой/инструментами в GitHub Daze Runners для локализации Flutter или конкретные конфигурации, чтобы установить разрешение пакета: URI для сгенерированных файлов в этом сценарии?

Подробнее здесь: https://stackoverflow.com/questions/796 ... d-works-lo
Ответить

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

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

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

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

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