XianyuTech / flutter-boot

A native-flutter-hybrid develop tool helps you add and develop flutter with your existing app
621 stars 68 forks source link

通过 Flutter-boot 创建混合工程构建出错 #2

Closed Vadaski closed 4 years ago

Vadaski commented 4 years ago

Hi!我尝试用 Flutter-boot 创建了 Android / Flutter 混合工程,没有添加其他代码,运行的时候遇到了下面的错误:

Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:9: 错误: 程序包android.support.annotation不存在
import android.support.annotation.NonNull;
                                 ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:10: 错误: 找不到符号
import android.support.v4.app.Fragment;
                             ^
  符号:   类 Fragment
  位置: 程序包 android.support.v4.app
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:19: 错误: 找不到符号
public class FlutterFragment extends Fragment {
                                     ^
  符号: 类 Fragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:7: 错误: 程序包android.arch.lifecycle不存在
import android.arch.lifecycle.Lifecycle;
                             ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:8: 错误: 程序包android.arch.lifecycle不存在
import android.arch.lifecycle.LifecycleObserver;
                             ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:9: 错误: 程序包android.arch.lifecycle不存在
import android.arch.lifecycle.OnLifecycleEvent;
                             ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:10: 错误: 程序包android.support.annotation不存在
import android.support.annotation.NonNull;
                                 ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:70: 错误: 找不到符号
  public static FlutterView createView(@NonNull final Activity activity, @NonNull final Lifecycle lifecycle, final String initialRoute) {
                                                                                        ^
  符号:   类 Lifecycle
  位置: 类 Flutter
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:37: 错误: 找不到符号
  public FlutterView onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                                   ^
  符号:   类 NonNull
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:36: 错误: 找不到符号
  public static void startInitialization(@NonNull Context applicationContext) {
                                          ^
  符号:   类 NonNull
  位置: 类 Flutter
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:49: 错误: 找不到符号
  @NonNull
   ^
  符号:   类 NonNull
  位置: 类 Flutter
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:70: 错误: 找不到符号
  public static FlutterView createView(@NonNull final Activity activity, @NonNull final Lifecycle lifecycle, final String initialRoute) {
                                        ^
  符号:   类 NonNull
  位置: 类 Flutter
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:70: 错误: 找不到符号
  public static FlutterView createView(@NonNull final Activity activity, @NonNull final Lifecycle lifecycle, final String initialRoute) {
                                                                          ^
  符号:   类 NonNull
  位置: 类 Flutter
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:69: 错误: 找不到符号
  @NonNull
   ^
  符号:   类 NonNull
  位置: 类 Flutter
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:23: 错误: 方法不会覆盖或实现超类型的方法
  @Override
  ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:25: 错误: 找不到符号
    super.onCreate(savedInstanceState);
    ^
  符号:   变量 super
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:26: 错误: 找不到符号
    if (getArguments() != null) {
        ^
  符号:   方法 getArguments()
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:27: 错误: 找不到符号
      mRoute = getArguments().getString(ARG_ROUTE);
               ^
  符号:   方法 getArguments()
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:31: 错误: 方法不会覆盖或实现超类型的方法
  @Override
  ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:33: 错误: 找不到符号
    super.onInflate(context, attrs, savedInstanceState);
    ^
  符号:   变量 super
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:36: 错误: 方法不会覆盖或实现超类型的方法
  @Override
  ^
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:38: 错误: 找不到符号
    return Flutter.createView(getActivity(), getLifecycle(), mRoute);
                              ^
  符号:   方法 getActivity()
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/FlutterFragment.java:38: 错误: 找不到符号
    return Flutter.createView(getActivity(), getLifecycle(), mRoute);
                                             ^
  符号:   方法 getLifecycle()
  位置: 类 FlutterFragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:54: 错误: 找不到符号
    fragment.setArguments(args);
            ^
  符号:   方法 setArguments(Bundle)
  位置: 类型为FlutterFragment的变量 fragment
/Users/litavadaski/flutter_boot_demo/.android/Flutter/src/main/java/io/flutter/facade/Flutter.java:91: 错误: 找不到符号
    lifecycle.addObserver(new LifecycleObserver() {
                              ^
  符号:   类 LifecycleObserver
  位置: 类 Flutter
25 个错误
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Finished with error: Gradle task assembleDebug failed with exit code 1

Flutter doctor:

[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.6 18G87, locale zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.3)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[✓] Connected device (1 available)

• No issues found!

我的操作步骤:

VadaskideMBP-4c05:~ litavadaski$ flutter-boot init
info [init] init flutter module.
? 请输入flutter工程名称: flutter_boot_demo
? 请输入flutter仓库地址,回车跳过 
info [create] clean flutter module git
info [create] done: no git info
info [create] creating flutter module
Creating project flutter_boot_demo...
  flutter_boot_demo/test/widget_test.dart (created)
  flutter_boot_demo/flutter_boot_demo.iml (created)
  flutter_boot_demo/.gitignore (created)
  flutter_boot_demo/.metadata (created)
  flutter_boot_demo/pubspec.yaml (created)
  flutter_boot_demo/README.md (created)
  flutter_boot_demo/lib/main.dart (created)
  flutter_boot_demo/flutter_boot_demo_android.iml (created)
  flutter_boot_demo/.idea/libraries/Flutter_for_Android.xml (created)
  flutter_boot_demo/.idea/libraries/Dart_SDK.xml (created)
  flutter_boot_demo/.idea/modules.xml (created)
  flutter_boot_demo/.idea/workspace.xml (created)
Running "flutter pub get" in flutter_boot_demo...                   2.0s
Wrote 12 files.

All done!
Your module code is in flutter_boot_demo/lib/main.dart.
All done!
Your module code is in flutter_boot_demo/lib/main.dart.
sill [create] flutter module recorded
info [create] flutter module created
info [ShellProject] create android softlink to /Users/litavadaski/flutter_boot_demo/android_shell
info [ShellProject] create ios softlink to /Users/litavadaski/flutter_boot_demo/ios_shell
info [create] native shell project created
sill [create] prepare gitignore
info [create] init flutter module git
info [create] done: no git info
? 是否存在iOS工程? No
info [init] 你可以在创建iOS工程后调用 flutter-boot link来关联flutter
? 是否存在Android工程? Yes
? Android工程本地地址,回车跳过 /Users/litavadaski/WorkSpace/android
sill [link] checking platform...
sill [link] linking...
info [Androidlink] init compile options
info [Androidlink] compile options settled into app/build.gradle
info [Androidlink] update flutter dependency
info [Androidlink] dependency settled in app/build.gradle
info [Androidlink] init gradle.properties
info [Androidlink] inject file: fbinclude_flutter.groovy
info [Androidlink] init gradle settings
info [Androidlink] settings settled in settings.gradle
info [Androidlink] inject gitignore
info [softlink] flutterPath: /Users/litavadaski/flutter_boot_demo; nativePath: /Users/litavadaski/WorkSpace/android
sill [link] link process finished
sill [link] run packages get...
Running "flutter pub get" in flutter_boot_demo...          
info [link] link success
info [init] 混合工程初始化完成
Vadaski commented 4 years ago

image

Android 工程构建错误与 Flutter 工程一致

sayhixiang commented 4 years ago

这个应该和AndroidX有关,是不是android工程里启用了AndroidX,可以参考下https://goo.gl/CP92wY 来解决

voicewitness commented 4 years ago

Duplicate of #5