Flutter Build on Azure Pipelines



我无法在Azure管道上构建Flutter应用程序,即使它在本地机器上编译。

显示的错误如下:

[+1222 ms] lib/services/sync/sync_service.dart:7:8: Error: Error when reading 'lib/services/AppVersion/app_version_service.dart': No such file or directory
[        ] import 'package:columbus/services/AppVersion/app_version_service.dart';
[        ]        ^
[ +863 ms] lib/services/sync/sync_service.dart:55:10: Error: Type 'AppVersionService' not found.
[        ]   static AppVersionService _appVersionService;
[        ]          ^^^^^^^^^^^^^^^^^
[+2934 ms] lib/services/sync/sync_service.dart:55:10: Error: 'AppVersionService' isn't a type.
[        ]   static AppVersionService _appVersionService;
[        ]          ^^^^^^^^^^^^^^^^^
[   +6 ms] lib/services/sync/sync_service.dart:88:26: Error: The method 'AppVersionService' isn't defined for the class 'SyncService'.
[        ]  - 'SyncService' is from 'package:columbus/services/sync/sync_service.dart' ('lib/services/sync/sync_service.dart').
[        ] Try correcting the name to the name of an existing method, or defining a method named 'AppVersionService'.
[        ]     _appVersionService = AppVersionService();
[        ]                          ^^^^^^^^^^^^^^^^^
[+8165 ms] killing pid 2546
[        ] test 1: cleaning up...
[        ] test 1: deleting temporary directory
[        ] test 1: waiting for controller sink to close

我的管道如下:

下面是我的管道。我已经尝试手动和使用颤振管道插件。两者的误差是一样的。有什么建议就太好了。

我故意省略了管道的标题部分,否则不能使用"大部分代码"评论!:)

steps:
- checkout: self
clean: true
persistCredentials: true
path: 'mobile_ui'
- task: JavaToolInstaller@0
inputs:
versionSpec: 17
jdkArchitectureOption: x64
jdkSourceOption: PreInstalled
displayName: 'Install Java 17 SDK'
- task: Bash@3
inputs:
targetType: 'inline'
script: 'wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.3.6-stable.tar.xz'
- task: Bash@3
inputs:
targetType: 'inline'
script: 'tar -xvf flutter_linux_3.3.6-stable.tar.xz'
- task: Bash@3
inputs:
targetType: 'inline'
script: 'ls'
workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "##vso[task.prependpath]$(System.DefaultWorkingDirectory)/flutter/bin"
Write-Host "##vso[task.prependpath]$(System.DefaultWorkingDirectory)/flutter/bin/cache/dart-sdk/bin"
- task: PowerShell@2
displayName: "Flutter Doctor"
inputs:
targetType: 'inline'
script: flutter doctor
- task: PowerShell@2
displayName: "Restore Packages"
inputs:
targetType: 'inline'
script: flutter pub get
workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: PowerShell@2
continueOnError: true
inputs:
targetType: 'inline'
script: 'flutter test --verbose'
errorActionPreference: 'continue'
workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: FlutterInstall@0
displayName: 'Install Flutter SDK'
inputs:
version: custom
customVersion: 3.3.6
- task: Bash@3
displayName: 'Build Android Bundle'
inputs:
targetType: 'inline'
workingDirectory: '$(System.DefaultWorkingDirectory)'
script: '$(FlutterToolPath)/flutter build appbundle --build-name=2022.11.1 --build-number=$(Build.BuildNumber) --flavor development -t lib/main.dev.dart --verbose'

所以我设法解决了这个问题,原来是命名约定。

我的导入是这样的:

import 'package:columbus/services/AppVersion/app_version_service.dart';

但文件夹路径如下:

columbus/services/appVersion/app_version_service.dart

注意appVersions中的小写字母A,在导入文件中它是appVersions。

MacOS文件系统不区分大小写,其中Linux是!

最新更新