Android與flutter混合開發(fā)

這里我使用的android studio版本是2020.3.1;flutter版本2.5.3。此前在網(wǎng)上搜索的很多教教程版本都不一樣,新版的IDE和SDK讓我遇到了很多坑故這里整理一下。

一、創(chuàng)建項目

1.在Android項目中點擊File->New->New Flutter Project。File->New->New Flutter Project


2.在彈出的面板中選擇Flutte,選擇Flutter SDK所在的路徑,然后Next。

3.然后在彈出的面板中輸入Project name和Description,Organization,選擇location時建議選擇建在和android同一目錄下。類型選擇Flutter Module,點擊Finish完成創(chuàng)建。

二、Android項目關(guān)聯(lián)Flutter Module

Flutter官網(wǎng)上講到此處就已經(jīng)建立完成了,但是我使用的Android Studio的最新版和官網(wǎng)中的操作步驟的不一樣的,并沒有完成項目的關(guān)聯(lián)。有無關(guān)聯(lián)可在原生項目的seetings.gradle中查看是否有如下代碼,沒有就手動添加。我這里的Bingding會報錯但是不影響Sync可能是flutter的bug吧。

setBinding(new Binding([gradle: this]))
evaluate(new File(
        settingsDir,
        '../fluttermodule/.android/include_flutter.groovy'
))

然后在app的build.gradle中添加

implementation project(':flutter')

三、Failed to apply plugin class ‘FlutterPlugin’

此時應(yīng)該就已經(jīng)完成了項目關(guān)聯(lián)了,可是我試了N多次每次都是會報錯,錯誤提示為:

  • Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by plugin class ‘FlutterPlugin’
  • aused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin class ‘FlutterPlugin’.
    解決方案為:
    1.把seetings.gradle中的(RepositoriesMode.FAIL_ON_PROJECT_REPOS)改為(RepositoriesMode.PREFER_PROJECT)
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    }
}

2.在project的build.gradle中添加

allprojects {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        }
    }

3.重新build,此時就沒有報錯了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容