AndroidをFlutterモジュールにインポート

2810 ワード

文書ディレクトリ
  • Android導入Flutterモジュール
  • 両方式
  • 1.Android Studio
  • を使用
  • 2.手動統合
  • Flutterモジュール
  • を作成する.
  • Java 8要件
  • Flutterモジュールを依存として追加
  • 1.AAR
  • 2.ソースモジュール
  • AndroidをFlutterモジュールにインポート
    Flutterは、既存のAndroidアプリケーションにソースコードGradleサブプロジェクトまたはAARとして埋め込むことができます.
    Flutterプラグイン付きAndroid Studio IDEまたは手動で統合プロセスを完了できます.
    Flutterは現在、x 86の構築のみをサポートしています.64、armeabi-v 7 a、arm 64-v 8 aのAOTコンパイルライブラリabiFilters Android GradleプラグインAPIを使用してAPKでサポートされているアーキテクチャを制限することを考慮します.これにより、libflutter.soの運転時のクラッシュを回避できます.たとえば、次のようになります.
    android {
      //...
      defaultConfig {
        ndk {
          // Filter for architectures supported by Flutter.
          abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
        }
      }
    }
    

    二つの方法
    1.Android Studioを使うFile > New > New Module...既存のAndroidプロジェクトのAndroid Studioのメニューでは、統合する新しいFlutterモジュールを作成したり、以前に作成した既存のFlutterモジュールを選択したりできます.
    2.手動統合
    Flutterモジュールの作成
    Androidアプリケーションsome/path/MyAppが既に存在し、Flutterプロジェクトを同級プロジェクトとして使用したいとします.
    $ cd some/path/
    $ flutter create -t module --org com.example my_flutter
    

    Java 8要件
    Flutter AndroidエンジンはJava 8機能を使用しています.
    FlutterモジュールプロジェクトをプライマリAndroidアプリケーションに接続しようとする前に、アプリケーションbuild.gradleファイルのandroid { }ブロックの下で、プライマリAndroidアプリケーションが次のようなソース互換性を宣言していることを確認してください.
    android {
      //...
      compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
      }
    }
    

    依存項目としてFlutterモジュールを追加
    FlatterモジュールをGradleの既存のアプリケーションの依存として追加します.
    この目的を達成するには2つの方法があります
    1.AARメカニズムは、Flutterモジュールをパッケージ化する仲介者として汎用的なAndroid AARを作成します.これは、下流アプリケーション構築者がFlutter SDKをインストールしたくない場合に便利です.ただし、コンストラクションを頻繁に行う場合は、コンストラクションステップが追加されます.
    2.ソースコードサブプロジェクトメカニズムは便利なワンタッチ構築プロセスであるが、Flutter SDKが必要である.これはAndroid Studio IDEプラグインが使用するメカニズムです
    1.AAR
    AAR詳細は公式サイトをご覧ください
    2.ソースモジュール(module)
    AndroidプロジェクトとFlutterプロジェクトは、ステップの構築を有効にします.このオプションは、両方のセクションで高速反復を行う場合に便利ですが、メインアプリケーションを構築するには、チームがFlutter SDKをインストールする必要があります.
    メインアプリのsettings.gradleで:
    include ':app'                                     // assumed existing content
    setBinding(new Binding([gradle: this]))                                 // new
    evaluate(new File(                                                      // new
      settingsDir.parentFile,                                               // new
      'my_flutter/.android/include_flutter.groovy'                          // new
    ))                                                                 
    

    appのbuild.gradle依存性の追加
    dependencies {
      implementation project(':flutter')
    }
    

    gradle sync(同期)ちょっと、OK