flutter跑通腾讯云直播Demo

2024-04-12 06:36

本文主要是介绍flutter跑通腾讯云直播Demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

运行示例

前提条件

要求java jdk 11版本 并且配置到了环境变量 重要

要求flutter 版本 2.8.0 并且配置到了环境变量 重要

要求dart-sdk版本2.15 并且配置到了环境变量 重要

您已 注册腾讯云 账号,并完成 实名认证。

申请 SDKAPPID 和 SECRETKEY

  1. 登录实时音视频控制台,选择【开发辅助】>【快速跑通Demo】。
  2. 单击【立即开始】,输入您的应用名称,例如TestTRTC,单击【创建应用】。

环境要求:

运行出问题

  • Launching lib\main.dart on V2164A in debug mode... Running Gradle task 'assembleDebug'... Warning: The plugin path_provider_android requires Android SDK version 33. For more information about build configuration, see https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. Warning: The plugin shared_preferences_android requires Android SDK version 33. For more information about build configuration, see https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. Warning: The plugin url_launcher_android requires Android SDK version 33. For more information about build configuration, see https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. One or more plugins require a higher Android SDK version. Fix this issue by adding the following to C:\Users\Administrator\Desktop\ceshi\android\app\build.gradle: android { compileSdkVersion 33 ... } Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01 Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01 Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01 Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/03 to old ns http://schemas.android.com/sdk/android/repo/addon2/01 Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01 Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/03 to old ns http://schemas.android.com/sdk/android/repo/repository2/01 Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/03 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01 Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01 FAILURE: Build failed with an exception. * What went wrong: Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'. > Failed to find Build Tools revision 29.0.2 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 12s Exception: Gradle task assembleDebug failed with exit code 1 
  • 怎么回事

  • 这个错误通常是由于Flutter项目中的某些插件需要更高版本的Android SDK,而你的项目当前使用的Android SDK版本不符合要求所致。具体来说,错误信息中提到了需要 Android SDK 版本 33,而你当前的项目使用的版本较低。

    要解决这个问题,你需要更新你的 Android 项目的编译 SDK 版本到 33。你可以按照错误信息中提供的建议,在你的项目的 android/app/build.gradle 文件中添加以下内容:

     
  • android {compileSdkVersion 33...
    }
    

    然后重新运行你的Flutter项目,应该就能够成功构建了。

  • 问题



    Warning: This version only understands SDK XML versions up to 2 but an SDK XML file of version 3 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times. Warning: �����Ԫ�� (uri:"", local:"base-extension")������Ԫ��Ϊ<{}codename>,<{}layoutlib>,<{}api-level> FAILURE: Build failed with an exception. * What went wrong: Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'. > Failed to find Build Tools revision 30.0.2 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 2m 41s Exception: Gradle task assembleDebug failed with exit code 1




    怎么回事

  • 这个错误提示表明你的项目中使用了一个不兼容的 Android SDK 版本。具体来说,错误信息中提到了需要 Build Tools 版本 30.0.2,但是你的环境中没有找到这个版本的构建工具。

    要解决这个问题,你可以按照以下步骤操作:

    1. 打开 Android Studio,然后点击顶部菜单中的 “Tools” -> "SDK Manager"。
    2. 在 “SDK Platforms” 标签下,确保你已经安装了 Android 11.0(API level 30)的 SDK。
    3. 在 “SDK Tools” 标签下,确保你已经安装了 “Android SDK Build-Tools” 版本 30.0.2。
    4. 如果没有找到相应的版本,点击相应的复选框进行安装。
    5. 安装完成后,重新构建你的项目,应该就可以成功了。

    如果你无法在 Android Studio 中找到所需的版本,你也可以手动下载并安装相应的 SDK 和构建工具。安装完成后,确保在你的项目中正确配置了使用这个版本的 SDK 和构建工具。

    一旦你的环境中安装了所需的 SDK 和构建工具,重新运行你的 Flutter 项目,应该就能够成功构建了。

  • FAILURE: Build failed with an exception.

    * What went wrong:
    Could not determine the dependencies of task ':permission_handler:compileDebugAidl'.
    > Failed to find Platform SDK with path: platforms;android-29

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.

    * Get more help at https://help.gradle.org

    BUILD FAILED in 5s
    Exception: Gradle task assembleDebug failed with exit code 1

    什么原因

  • 这个错误提示表明在编译 permission_handler 这个库时,Gradle 找不到指定路径下的 Android 平台 SDK,路径为 platforms;android-29

    要解决这个问题,你可以尝试以下步骤:

    1. 确保你的项目中包含了 Android 平台 SDK 版本为 29 的文件。你可以通过打开 Android Studio,然后点击顶部菜单中的 “Tools” -> "SDK Manager",在 “SDK Platforms” 标签下确认是否安装了 Android 10.0(API level 29)的 SDK。

    2. 如果没有安装,你可以在 SDK Manager 中选择相应的 SDK 版本进行安装。

    3. 如果你已经安装了对应的 SDK,但仍然出现这个错误,可能是 Gradle 配置有误。你可以检查你的 android/build.gradle 文件,确保 compileSdkVersiontargetSdkVersion 版本设置正确,指向了正确的 SDK 版本。

    4. 最后,如果以上步骤都没有解决问题,你可以尝试清理 Gradle 缓存并重新构建项目。可以通过在终端中运行以下命令来清理 Gradle 缓存:

       
    1. flutter clean
      

      然后重新运行你的 Flutter 项目。

    通过这些步骤,应该能够解决你遇到的问题。

  • FAILURE: Build failed with an exception.* What went wrong:
    Could not determine the dependencies of task ':tencent_trtc_cloud:compileDebugAidl'.
    > Failed to find Platform SDK with path: platforms;android-28* Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 5s
  • 这个错误提示表明在编译 tencent_trtc_cloud 这个库时,Gradle 找不到指定路径下的 Android 平台 SDK,路径为 platforms;android-28

    要解决这个问题,你可以尝试以下步骤:

    1. 确保你的项目中包含了 Android 平台 SDK 版本为 28 的文件。你可以通过打开 Android Studio,然后点击顶部菜单中的 “Tools” -> "SDK Manager",在 “SDK Platforms” 标签下确认是否安装了 Android 9.0(API level 28)的 SDK。

    2. 如果没有安装,你可以在 SDK Manager 中选择相应的 SDK 版本进行安装。

    3. 如果你已经安装了对应的 SDK,但仍然出现这个错误,可能是 Gradle 配置有误。你可以检查你的 android/build.gradle 文件,确保 compileSdkVersiontargetSdkVersion 版本设置正确,指向了正确的 SDK 版本。

    4. 最后,如果以上步骤都没有解决问题,你可以尝试清理 Gradle 缓存并重新构建项目。可以通过在终端中运行以下命令来清理 Gradle 缓存:

       
    1. flutter clean
      

      然后重新运行你的 Flutter 项目。

    通过这些步骤,应该能够解决你遇到的问题。

  • /D:/flutter_windows_2.8.0-stable/.pub-cache/hosted/pub.flutter-io.cn/tencent_trtc_cloud-2.7.7/lib/trtc_cloud_listener.dart:661:25: Error: The getter 'Uint8List' isn't defined for the class 'TRTCAudioFrameListenerPlatformMethod'.- 'TRTCAudioFrameListenerPlatformMethod' is from 'package:tencent_trtc_cloud/trtc_cloud_listener.dart' ('/D:/flutter_windows_2.8.0-stable/.pub-cache/hosted/pub.flutter-io.cn/tencent_trtc_cloud-2.7.7/lib/trtc_cloud_listener.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'Uint8List'.audioFrame.data = Uint8List.fromList(List<int>.from(params['data']));^^^^^^^^^
    /D:/flutter_windows_2.8.0-stable/.pub-cache/hosted/pub.flutter-io.cn/tencent_trtc_cloud-2.7.7/lib/trtc_cloud_listener.dart:677:30: Error: The getter 'Uint8List' isn't defined for the class 'TRTCAudioFrameListenerPlatformMethod'.- 'TRTCAudioFrameListenerPlatformMethod' is from 'package:tencent_trtc_cloud/trtc_cloud_listener.dart' ('/D:/flutter_windows_2.8.0-stable/.pub-cache/hosted/pub.flutter-io.cn/tencent_trtc_cloud-2.7.7/lib/trtc_cloud_listener.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'Uint8List'.audioFrame.extraData = Uint8List.fromList(List<int>.from(params['extraData']));^^^^^^^^^FAILURE: Build failed with an exception.* Where:
    Script 'D:\flutter_windows_2.8.0-stable\packages\flutter_tools\gradle\flutter.gradle' line: 1070* What went wrong:
    Execution failed for task ':app:compileFlutterBuildDebug'.
    > Process 'command 'D:\flutter_windows_2.8.0-stable\bin\flutter.bat'' finished with non-zero exit value 1* Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 24s
    Exception: Gradle task assembleDebug failed with exit code 1怎么回事
    
  • 这个错误提示表明在编译过程中出现了无法识别的类或方法。具体来说,代码中引用了不存在的 Uint8List 类型。

    要解决这个问题,你可以尝试以下步骤:

    1. 检查依赖版本: 确保你使用的 tencent_trtc_cloud 库的版本与你的代码兼容。有时候更新库版本或者降低库版本可以解决这类问题。

    2. 检查引用路径: 确保 Uint8List 类型被正确地引入。在 Dart 中,Uint8List 类型通常是从 dart:typed_data 中引入的。你可以检查一下是否在文件开头引入了该类:

       
    1. import 'dart:typed_data';
      
    2. 检查参数类型: 确保传递给 Uint8List.fromList 方法的参数类型是 List<int>。你可以添加一些调试语句,确认参数类型和值是否正确。

    3. 清理缓存并重新构建: 有时候清理 Flutter 和 Gradle 的缓存可以解决一些编译问题。你可以尝试运行 flutter clean 命令清理 Flutter 缓存,然后重新构建项目。

    4. 查看文档和示例: 如果以上方法都没有解决问题,你可以查看相关库的文档和示例,看是否有类似的用法示例或者已知的解决方法。

    通过以上步骤,你应该能够解决这个编译错误。如果问题仍然存在,可以提供更多的代码片段或者详细的错误信息,这样我可以给出更具体的帮助。

  • ע: D:\flutter_windows_2.8.0-stable\.pub-cache\hosted\pub.flutter-io.cn\path_provider_android-2.0.12\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.javaʹ����δ�����򲻰�ȫ�IJ�����
    ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:unchecked ���±��롣
    ע: ijЩ�����ļ�ʹ�û򸲸����ѹ�ʱ�� API��
    ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣
    ע: ijЩ�����ļ�ʹ����δ�����򲻰�ȫ�IJ�����
    ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:unchecked ���±��롣乱码
  • 这些警告信息看起来是由于编译过程中使用了非 ASCII 字符,导致终端输出了乱码。虽然这些警告信息看起来比较杂乱,但通常不会影响到你的应用程序的运行。

    根据警告信息中提到的路径 D:\flutter_windows_2.8.0-stable\.pub-cache\hosted\pub.flutter-io.cn\path_provider_android-2.0.12\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.java,似乎是在处理路径提供者插件(path_provider)的 Android 部分时出现了一些问题。但从这个信息来看,并没有提供具体的错误信息或者异常。

    要解决这个问题,你可以尝试以下几点:

    1. 清理缓存并重新构建: 运行 flutter clean 清理 Flutter 缓存,然后重新构建你的应用程序。

    2. 检查依赖版本: 确保你使用的 path_provider 插件的版本是最新的,并且与你的 Flutter 版本兼容。

    3. 查看详细日志: 如果上述步骤无法解决问题,你可以尝试添加 -v 参数重新运行构建命令,以获取更详细的日志信息,帮助你定位问题所在。

    4. 更新插件: 如果问题依然存在,可以尝试更新相关的插件或者依赖库到最新版本,看是否有已知的问题修复。

    通过以上步骤,你应该能够解决这个警告信息所引发的问题。如果问题依然存在,欢迎提供更多的详细信息,我会尽力帮助你解决。

安装到手机如果白屏的话,请关闭app后台让后将 ,让后重新启动app就可以看到所有模块按钮了

 

这篇关于flutter跑通腾讯云直播Demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896367

相关文章

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

速盾:直播 cdn 服务器带宽?

在当今数字化时代,直播已经成为了一种非常流行的娱乐和商业活动形式。为了确保直播的流畅性和高质量,直播平台通常会使用 CDN(Content Delivery Network,内容分发网络)服务器来分发直播流。而 CDN 服务器的带宽则是影响直播质量的一个重要因素。下面我们就来探讨一下速盾视角下的直播 CDN 服务器带宽问题。 一、直播对带宽的需求 高清视频流 直播通常需要传输高清视频

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

linux 内核提权总结(demo+exp分析) -- 任意读写(四)

hijack_modprobe_path篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     原理同hijack_prctl, 当用户执行错误格式的elf文件时内核调用call_usermod

linux 内核提权总结(demo+exp分析) -- 任意读写(三)

hijack_prctl篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   prctl函数: 用户态函数,可用于定制进程参数,非常适合和内核进行交互 用户态执行prctl函数后触发prctl系统

linux 内核提权总结(demo+exp分析) -- 任意读写(二)

hijack_vdso篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     vdso: 内核实现的一个动态库,存在于内核,然后映射到用户态空间,可由用户态直接调用 内核中的vdso如果被修改

linux 内核提权总结(demo+exp分析) -- 任意读写(一)

cred篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   每个线程在内核中都对应一个线程结构块thread_infothread_info中存在task_struct类型结构体 struct t

linux 内核提权总结(demo+exp分析) -- ROP(二)

ret2usr CR4篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   smep: smep是内核的一种保护措施, 使得内核不可执行用户态代码 内核通过CR4寄存器的第20位来控制smep,