作者:小Q理性的激情农_885 | 来源:互联网 | 2023-10-13 11:33
使用platformchannels,Flutter可以与本机平台互操作(即读取电池电量).在Android上,这需要调用Java方法.我想使用第三方JavaSDK(适用于AW
使用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等).