【flutter】工程集成第三方SDK(百度语音sdk为例) AndroidStudio工具

下载第三方sdk
  1. 自行下载解压
  2. 将libs中的jar ,jniLibs中的NDK so库架构等文件复制取出。其中armeabi开头的删除,x86是模拟器,真机运行也可删除
1.flutter添加新的module
  1. 将flutter工程以安卓模式打开,可重新open选择里面的android。第一次打开时间长
  2. 新建module,选择library ,过程如下
    在这里插入图片描述
    在这里插入图片描述
  3. 将之前下载好的第三方sdk中jar和so文件复制到module里对应的目录下
    在这里插入图片描述
    在这里插入图片描述
  4. jar包添加之后不要忘记了要add到build.gradle,也可以在gradle中编写通配
    在这里插入图片描述
  5. 在清单文件中,按照sdk所需的权限以及 AppID,API Key,Secret Key进行配置
    在这里插入图片描述
  6. app添加刚才新建的library依赖,过程如下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  7. 添加完毕之后可在 build.gradle(app)中查看有
    在这里插入图片描述
  8. 完成之后,将项目重新以flutter形式打开,运行一遍,确保没有出现错误,一般出现新建的module和之前的app最小sdk版本不一致问题,修改成一样即可。
2.编写dart端接口
  1. 过程如下
    在这里插入图片描述

  2. bbbb

3. Android平台的plugin实现
  1. 将项目重新以android形式打开,导入第三方sdk demo 中相关的类
  2. module中添加flutter依赖,这样才能使用flutter插件中的一些方法。
  3. 首先按照build.gradle(app)中引入flutter.sdk的方法,复制到 build.gradle(asr_plugin)
  4. 然后将build.gradle(app)中引入flutter.sdk的方法全部注释,
  5. 接下来就可以使用了
  6. aaaa
4.解决新module添加的插件与原app插件的冲突
  1. 在build.gradle(app) 中修改。在defaultConfig节点下增加:
        ndk {
            abiFilters "armeabi-v7a","arm64-v8a","x86_64","x86" /*只打包flutter所支持的架构,flutter没有armeabi架构的so,加x86的原因是为了能够兼容模拟器  abiFilters "armeabi-v7a"  release 时打"armeabi-v7包  */
        }
  1. 在buildTypes大括号末尾增加:
    packagingOptions {
        /* 确保app与asr_plugin都依赖的libflutter.so libapp.so merge时不冲突 */
        pickFirst 'lib/x86_64/libflutter.so'
        pickFirst 'lib/x86_64/libapp.so'
        pickFirst 'lib/x86/libflutter.so'
        pickFirst 'lib/arm64-v8a/libflutter.so'
        pickFirst 'lib/arm64-v8a/libapp.so'
        pickFirst 'lib/armeabi-v7a/libapp.so'
    }
5.编写Android端的接口实现
  1. 根据第三方sdk的使用文档,编写相应的类
  2. 插件通信与dart端实现,以asr_plugin为例:
    在这里插入图片描述
  3. 添加android 6.0 以上需要动态申请权限 ,根据sdk文档添加即可
  4. 在MainActivity中注册我们开发的插件
public class MainActivity extends FlutterActivity {

    //重写此方法
    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        super.configureFlutterEngine(flutterEngine);
        //flutter sdk >= v1.17.0 时使用下面方法注册自定义plugin

        AsrPlugin.registerWith(flutterEngine.getDartExecutor().getBinaryMessenger(),this);
    }
}
发现的问题汇总
  1. aaaaa
  2. aaaa
  3. aaaa
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
当在Android Studio中切换Flutter SDK之后,有可能会遇到一些报错。以下是一些可能的报错以及它们的解决方法: 1. 缺少Flutter插件:如果Android Studio无法找到Flutter插件,请确保已正确安装Flutter插件。要安装插件,可以打开Android Studio的“设置”菜单,然后导航到“插件”部分。在该部分中,搜索“Flutter”,然后单击“安装”按钮。 2. 缺少相关依赖项:切换Flutter SDK可能会导致一些依赖项缺失。可以尝试运行“flutter doctor”命令来检查缺失的依赖项并解决它们。该命令将列出任何缺失的依赖项并提供修复建议。 3. Flutter版本冲突:如果Flutter SDK的版本与项目中所需的Flutter版本不兼容,则可能会发生冲突。在这种情况下,可以尝试更新或降低Flutter SDK的版本来与项目需求相匹配。可以通过在终端中运行“flutter upgrade”来更新Flutter SDK,并降级到特定版本可以使用“flutter version <version>”命令。 4. 缺少Flutter配置:有时候在切换Flutter SDK后,项目可能需要重新配置。请确保在项目的根目录中运行“flutter create .”命令,以重新生成Flutter配置文件。这将确保项目正确识别和使用新的Flutter SDK。 5. 其他错误:如果以上步骤无法解决问题,则可能存在其他错误。在这种情况下,建议查看错误消息以获取更具体的信息,并搜索相关错误来找到解决办法。可以在Flutter社区论坛、GitHub问题页面等地方寻求帮助,以获取更多定制化的错误解决方案。 总的来说,切换Flutter SDK可能会带来一些问题,但通过检查插件安装、缺失依赖项、版本冲突、重新配置项目以及查找特定错误的解决方法,通常可以解决这些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值