在Android原生项目新建了flutter module,然后引入其他Flutter Project项目的lib下的dart文件和项目的pubspec.yaml文件,
运行main.dart报错:
Launching lib/main.dart on sdk gphone x86 arm in debug mode...
AndroidManifest.xml could not be found.
Please check /home/liucz/StudioProjects/coming_androidv4_66_1/coming-android/polkawallet/android/AndroidManifest.xml for errors.
No application found for TargetPlatform.android_x86.
Is your project missing an android/AndroidManifest.xml?
Consider running "flutter create ." to create one.
在Android项目的对应flutter module下执行flutter create .
:
$ flutter create .
Recreating project ....
Warning: You are using these overridden dependencies:
! polkawallet_ui 0.1.4 from git https://github.com/polkawallet-io/ui.git at e81dc9
Running "flutter pub get" in polkawallet... 760ms
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Warning
──────────────────────────────────────────────────────────────────────────────
Your Flutter application is created using an older version of the Android
embedding. It's being deprecated in favor of Android embedding v2. Follow the
steps at
https://flutter.dev/go/android-project-migration
to migrate your project.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Wrote 0 files.
All done!
Your module code is in lib/main.dart.
查看flutter module的目录:
如图中选中的所示,polkawallet目录下新生成了android
和ios
两个目录,之前是没有的,注意这是android
和ios
,不是.android
和.ios
,.android
和.ios
是之前就有的。
点击运行按钮:
Launching lib/main.dart on sdk gphone x86 arm in debug mode...
AndroidManifest.xml could not be found.
Please check /home/liucz/StudioProjects/coming_androidv4_66_1/coming-android/polkawallet/android/AndroidManifest.xml for errors.
No application found for TargetPlatform.android_x86.
Is your project missing an android/AndroidManifest.xml?
Consider running "flutter create ." to create one.
于是,拷贝了一份.android/app/src/main目录下的AndroidManifest.xml 文件到报错提示的android目录下,然后运行,还是报错:
Launching lib/main.dart on sdk gphone x86 arm in debug mode...
Exception: [!] The build process for Android has changed, and the current project configuration is no longer valid. Please consult
https://github.com/flutter/flutter/wiki/Upgrading-Flutter-projects-to-build-with-gradle
for details on how to upgrade the project.
https://github.com/flutter/flutter/wiki/Upgrading-Flutter-projects-to-build-with-gradle
解决:
不要把其他Flutter Project项目的lib下的dart文件和项目的pubspec.yaml都拷贝到Android原生项目的flutter module中,可以保持Android原生项目的flutter module的pubspec.yaml文件不变,然后只需要去Flutter Project项目的pubspec.yaml中复制dependencies
和dependency_overrides
标签下的相关所需的依赖过来即可。
总结:
在Android原生项目新建flutter module,然后引入其他Flutter Project项目时不能把lib下的dart文件和项目的pubspec.yaml都拷贝到Android原生项目的flutter module中,因为Flutter Project是全Flutter的环境,里面的依赖包也是假设在全Flutter的环境下运行的。
更多可参考:flutter:The plugin flutter_aes_ecb_pkcs5
is built using an older version of the Android plugin API
相关:
AndroidManifest.xml could not be found
Flutter报错: Is your project missing an ios/Runner/Info.plist 或 Is your project missing an android/And