微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 使用平台通道在Flutter中调用本机库

使用platform channels,Flutter可以与本机平台互操作(即读取电池电量).在Android上,这需要调用Java方法.

我想使用第三方Java SDK(适用于AWS Cognito).我可以将这个库放在我/ android中的某个地方,并与之交互吗?如果是这样,我该怎么做?

解决方法:

如果您还没有启动插件项目,请创建一个.

在某处收集第三方罐子 – 不要将它们放在pluginproject / android / …文件夹中.

在IDE中打开插件项目 – 在我的案例中是IDEA – 并将第三方jar添加java类路径中. (在IDEA中,单击Project Structure / Modules /选择pluginName_android / Dependencies选项卡/ green PlusSign / jars或目录 – 并选择单个jar或整个文件夹.将范围保留为编译,不要检查导出.)

在pluginproject / android / src / main / java / com / yourcompany … / … / PluginnamePlugin.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 /文件夹之外.

我只使用过乖巧的第三方罐子(没有JNI,不创建自己的Threads等).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐