前言

有时候,从pub.dev依赖的插件不完全满足需求,需要在插件的源码基础上做一些改动,这时就需要把远端插件本地化,即复制插件项目到本地,然后依赖本地的插件项目。

详细步骤

以插件android_alarm_manager为例,

1.正常依赖远端插件

dependencies:
    android_alarm_manager: ^2.0.0

2.找到插件在本地的具体位置,复制项目到plugins/目录下
然后修改依赖为

dependencies:
    android_alarm_manager:
        path: plugins/android_alarm_manager-2.0.0

3.用studio打开android_alarm_manager下的android项目
在build.gradle文件下增加如下配置

//获取local.properties配置文件
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}
//获取flutter的sdk路径
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}


dependencies {
    compileOnly files("$flutterRoot/bin/cache/artifacts/engine/android-arm/flutter.jar")
    }

并在local.properties文件下增加flutter sdk配置

flutter.sdk=C\:\\Users\\tgy\\Desktop\\fluttersdk\\flutter

4.同步项目,android项目正常编译后,就可以按自己的需求修改代码了。