实现一个java本地库来flutter插件模板

Posted

技术标签:

【中文标题】实现一个java本地库来flutter插件模板【英文标题】:implement a java local library to flutter plugin template 【发布时间】:2020-04-11 06:26:04 【问题描述】:

我正在尝试将本地库添加到颤振插件项目中。 该库直接在flutter项目的根文件夹中创建(不在android文件夹中) 所以这里是结构: 我的Flutter项目:

_ lib
   __ flutterPlugin.dart
_ MyLibrary   
   __ build.gradle
   __ setting.gradle
   __ src
   __ ...
_ Android
   __ build.gradle
   __ ...
[...]

这是我的 [android] build.gradle 文件:

group 'org.example.myproject'
version '1.0'

buildscript 
    repositories 
        google()
        jcenter()
    

    dependencies 
        classpath 'com.android.tools.build:gradle:3.5.0'
    


rootProject.allprojects 
    repositories 
        google()
        jcenter()
    


apply plugin: 'com.android.library'

android 
    compileSdkVersion 28

    defaultConfig 
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    
    lintOptions 
        disable 'InvalidPackage'
    


dependencies 
    implementation project(':myviewer')

这是我的 [android] setting.gradle 文件:

rootProject.name = 'Mywidget'
include ':myviewer'
project(':myviewer').projectDir = new File('../myviewer')

当我尝试颤振运行时,这是错误:

flutter run 在调试模式下在 Aquaris U2 上启动 lib/main.dart... FAILURE:构建失败并出现异常。

其中:构建文件 '/user/path/dev/FlutterPlugin/myproject/android/build.gradle' 行:37

出了什么问题:评估项目“:mywidget”时出现问题。

在项目“:mywidget”中找不到路径为“:myviewer”的项目。

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 运行 或 --debug 选项以获取更多日志输出。使用 --scan 运行以获取完整信息 见解。

通过https://help.gradle.org获得更多帮助 在 908 毫秒内构建失败 正在运行 Gradle 任务“assembleDebug”... 正在运行 Gradle 任务“assembleDebug”...完成 2,1s Gradle 任务 assembleDebug 失败,退出代码为 1

知道如何让它发挥作用吗?

谢谢

【问题讨论】:

【参考方案1】:

我发现这个solution 让我走上了正轨。 在命令行中使用gradle aR 构建.aar 后,我在我的android 文件夹中创建了文件夹libs,只需将此行添加到我的root build.gradle implementation fileTree(dir: 'libs', include: ['*.aar']),有关此的更多说明developper.android web site

【讨论】:

> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade => Non-directory inputs must have .jar extension,这是我在运行flutter run时收到的错误 你解决了评论的问题吗?我遇到了同样的问题,但不知道如何解决它:( 太糟糕了,我在 Android Studio 不工作的情况下创建了一个Invalid Cache/Restart,但我使用了gradlew clean,一切都照常运行......另一个烦人的缓存错误,希望这可以帮助某人。 ..

以上是关于实现一个java本地库来flutter插件模板的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 实现图片缓存到本地

Flutter WebView 插件无法播放某些 YouTube 视频

如何在flutter插件中使用本地aar?

flutter 如何实现文件读写(使用篇)

如何在本地使用颤振插件?

Flutter 如何将裁剪器添加到 fl_chart (CustomPainter)