使用platform channels,Flutter可以与本机平台互操作(即读取电池电量)。在Android上,这需要调用Java方法。
我想使用第三方Java SDK(适用于AWS Cognito)。我可以将这个库放在<section>
<div class="leftColumn">
<div class="content">
Numb1
</div>
<div class="content">
Numb2
</div>
</div>
<div class="content">
Numb3
</div>
</section>
的某个地方,并与之交互吗?如果是这样,我该怎么做?
答案 0 :(得分:3)
如果您尚未启动插件项目,请创建一个。
收集第三方罐子 - 不要将它们放在 pluginproject / android / ...文件夹中。
在IDE中打开插件项目 - 在我的案例中是IDEA - 并将第三方jar添加到Java类路径中。 (在IDEA中,单击项目结构/模块/选择 pluginName _android / Dependencies选项卡/绿色PlusSign / jars或目录 - 并选择单个jar或整个文件夹。将范围保留为编译而不是检查导出。)
在 pluginproject / android / src / main / java / com / yourcompany ... / ...中用Java(或Kotlin)实现特定于Android的代码/PluginnamePlugin.java,您现在可以使用第三方罐子声明的类。
将依赖项添加到gradle以便它将进行编译。在 pluginproject /android/build.gradle(注意 - 有几个build.gradles)最后添加这个 - 在android {}部分之后
dependencies {
implementation files('../../../java/someapi/somejar.jar')
}
路径必须相对于 pluginproject / android文件夹。您可以使用此语法指定整个文件夹
implementation fileTree(dir: '../../../somewhere/somefolder', include: ['*.jar'])
运行插件项目中提供的示例应用程序。
我不确定为什么不可能把第三方罐子放在 pluginproject / android / lib中,但这会导致我的dex错误,而将它们留在 pluginproject /文件夹可以正常工作。
我只使用过乖巧的第三方罐子(没有JNI,不创建自己的线程等)。
答案 1 :(得分:2)
是的。
您可以在其上看到documentation,也可以根据需要查看 tutorial。如果您使用的SDK可以帮助您 适用于Android和iOS的本地代码,否则将很困难。 祝你好运!
答案 2 :(得分:1)
扑腾的Android端使用Gradle(与任何其他android项目相同)。如果你有一个现有的Android应用程序,你可以从gradle文件移植大部分相同的设置。
除非你已经这样做并且有一个管理罐子的系统,我不建议直接将jar文件复制到你的项目中。因此源控制。
相反,请使用gradle的内置依赖项解析。您应该可以关注Amazon's android sdk set-up directions。不同之处在于,您必须通过方法渠道连接到SDK的调用,并编写自己的互操作代码。