代码之家  ›  专栏  ›  技术社区  ›  Paresh Mangukiya

您的Flutter应用程序是使用旧版本的安卓嵌入式系统创建的

  •  0
  • Paresh Mangukiya  · 技术社区  · 4 年前

    最近我打开了我的旧项目,现在有一个警告,以前没有发生过类似的事情

    警告看起来像

    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.
    

    弗利特医生-v总结

    [✓] Flutter (Channel stable, 1.22.2, on Mac OS X 10.15.3 19D76, locale en-GB)
        • Flutter version 1.22.2 at /Users/pkimac/Development/flutter
        • Framework revision 84f3d28555 (6 weeks ago), 2020-10-15 16:26:19 -0700
        • Engine revision b8752bbfff
        • Dart version 2.10.2
    
     
    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
        • Android SDK at /Users/pkimac/Library/Android/sdk
        • Platform android-30, build-tools 29.0.3
        • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 11.3.1, Build version 11C504
        • CocoaPods version 1.10.0.rc.1
    
    [!] Android Studio (version 4.1)
        • Android Studio at /Applications/Android Studio.app/Contents
        ✗ Flutter plugin not installed; this adds Flutter specific functionality.
        ✗ Dart plugin not installed; this adds Dart specific functionality.
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    
    [✓] Connected device (1 available)
        • iPhone 11 Pro (mobile) • 7A52F1D0-79F7-471C-AA62-3C106114A1A9 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)
        ! Error: Paresh’s iPhone has recently restarted. Xcode will continue when Paresh’s iPhone is unlocked. (code -14)
    
    ! Doctor found issues in 1 category.
    

    这意味着什么?我如何解决这个警告?

    0 回复  |  直到 4 年前
        1
  •  36
  •   Paresh Mangukiya    2 年前

    如果您在版本1.12之前创建了项目,则会出现此警告

    为了更好地支持将颤振添加到现有项目的执行环境,旧的Android平台端包装器在 io.flutter.app.FlutterActivity 它们的关联类现在已被弃用。新包装 io.flutter.embedding.android.FlutterActivity 而相关的类现在取代了它们。

    您现有的完整颤振项目不会立即受到影响,在可预见的未来将继续像以前一样工作。

    要迁移项目,请执行以下步骤:

    1. 取下你的身体 MainActivity.java MainActivity.kt 并改变 FlutterActivity 进口新的 颤振活动 不再需要手动注册插件。现在,当参考底图绘制完成时,它将自动执行注册 FlutterEngine 是创造出来的。你的文件应该是这样的

      package com.appname.app
      
      import io.flutter.embedding.android.FlutterActivity
      
      class MainActivity: FlutterActivity() {
      
      }
      

      如果您的应用程序中有现有的自定义平台通道处理代码 主要活动。JAVA 主要活动。kt 然后将onCreate中代码的通道注册部分移动到 颤振活动 子类和用法 flutterEngine.getDartExecutor().getBinaryMessenger() 作为二进制信使而不是 getFlutterView() .

    2. 打开android/app/src/main/AndroidManifest。xml。

    3. 从应用程序标记中删除对应用程序的引用。你的文件应该是这样的

      以前的配置:

      <application
         android:name="io.flutter.app.FlutterApplication"
         >
         <!-- code omitted -->
      </application>
      

      新配置:

      <application
        >
        <!-- code omitted -->
      </application>
      
    4. 更新闪屏行为(如果需要闪屏行为)。

      在里面 AndroidManifest.xml 全部删除 <meta-data> 带钥匙的标签 android:name="io.flutter.app.android.SplashScreenUntilFirstFrame" .

    5. 添加一个新的 <元数据> 贴上标签 <application> .

      <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
      

      enter image description here

        2
  •  0
  •   yusuf    4 年前

    https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects

    您的项目是使用较旧的Android版本创建的。如果您在版本1.12之前创建了项目,这可能适用于您的项目。目前它不会影响你的应用程序运行,但我建议你升级它。你可以按照说明通过我分享的链接升级。

        3
  •  0
  •   tanni tanna    3 年前
    Flutter 2.2.2
    
    Android Studio - 2020.3.1 Patch 3
    

    旧的应用程序,甚至创建新的颤振应用程序,都不会运行并显示OP提到的警告。

    我尝试过迁移,但没有成功。 终于从安装了最新版本(2.5.3) https://docs.flutter.dev/get-started/install/windows

    如上所述,下面添加了两个路径变量(Windows 10)

    C:\path-to-flutter-sdk\bin\ 
    
    C:\path-to-dart-sdk\bin\ 
    

    升级后,新旧应用程序都可以正常运行,无需进行任何额外的修改。

    从我的Windows 10设备

    enter image description here