使用平台通道,Flutter可以与本机平台互操作(即读取电池电量)。在Android上,这需要调用Java方法。
我想使用第三方Java SDK(适用于AWS Cognito)。我可以将此库放在我的某个位置/android并与之交互吗?如果是这样,我该怎么做?
/android
如果尚未启动插件项目,请创建一个。
在某个地方收集第三方罐子-不要将它们放在 pluginproject / android / …文件夹中。
在您的IDE中打开插件项目(在我的示例中为IDEA),然后将第三方jar添加到Java类路径中。(在IDEA中,单击项目结构/模块/选择 pluginName _android / Dependencies选项卡/绿色PlusSign / jar或目录- 并选择单个jar或整个文件夹。将范围保留为可编译状态,而不检查导出。)
在 pluginproject / android / src / main / java / com / yourcompany … / … / Pluginname Plugin.java中以Java(或Kotlin)实现您的Android专用代码,现在您可以在其中使用声明的类由第三方罐子。
将依赖项添加到gradle中,以便进行编译。在 pluginproject /android/build.gradle中(注意- 有多个build.gradles),在android {}部分之后添加此内容
dependencies { implementation files('../../../java/someapi/somejar.jar') }
该路径必须相对于 pluginproject / android文件夹。您可以使用此语法指定整个文件夹
implementation fileTree(dir: '../../../somewhere/somefolder', include: ['*.jar'])
运行插件项目中提供的示例应用程序。
我不确定为什么无法将第三方jar放入例如 pluginproject / android / lib,但这对我造成了dex错误,而将它们放在 pluginproject /文件夹之外是 可行的 。
我只使用过行为良好的第三方jar(没有JNI,请勿创建自己的线程等)。