Webrtc系列五——AppRTCMobile的Android Studio工程建立和问题解决

        AppRTCMobile是webrtc android上的一个demo客户端,通常我们用它来分析webrtc的在android的流程。

一、AppRTCMobile的Android Studio工程建立

webrtc for android的代码编译和配置完成后(编译方式如下)

 gn gen out/Release --args='is_debug=false is_component_build=false proprietary_codecs=true target_os="android" target_cpu="arm" is_chrome_branded=true use_custom_libcxx=false use_custom_libcxx_for_host=false is_component_ffmpeg=false rtc_use_h264=true rtc_build_examples=true android32_ndk_api_level=18 rtc_enable_protobuf=true is_clang=true treat_warnings_as_errors=false use_rtti=true dcheck_always_on=true' 


autoninja -C out/Release

可以通过自动化的脚本来进行

build/android/gradle/generate_gradle.py --output-directory out/Release --target "//examples:AppRTCMobile" --use-gradle-process-resources --split-projects --canary

上面指令生成AppRTCMobile工程 也可以不用参数--split-projects --use-gradle-process-resources ,否则生成的工程有很多的模块(看用户自己的选择,如果需要改到sdk依赖,可以使用上面命令)。看起来很复杂,而且编译问题难搞定,--canary不指定就是生成适合稳定版本Android Studio用的。

为了简单起见,本文使用如下命令来生成工程。

build/android/gradle/generate_gradle.py --output-directory out/Release --target "//examples:AppRTCMobile"

会在out/Release/gradle目录生成器一个android studio可以打开的工程。用 android studio打开后就可以构建了。

二、遇到的问题

1. Cannot resolve external dependency com.android.tools.build:aapt2:7.2.0-7984345

详细内容:

Execution failed for task ':examples.AppRTCMobile:processDebugAndroidTestResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
   > Could not isolate value com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskWorkActionParameters_Decorated@3be5e11 of type LinkApplicationAndroidResourcesTask.TaskWorkActionParameters
      > Could not resolve all files for configuration ':examples.AppRTCMobile:detachedConfiguration1'.
         > Cannot resolve external dependency com.android.tools.build:aapt2:7.2.0-7984345 because no repositories are defined.
           Required by:
               project :examples.AppRTCMobile

解决方法

project的build.gradle中添加

    allprojects {
        repositories {
            google()
            mavenCentral()
        }
    }

2. 重复定义的R class

out/Release/gen/examples/AppRTCMobile_javalib/generated_java/input_srcjars/org/appspot/apprtc/R.java:5: error: duplicate class: org.appspot.apprtc.R
public final class R {

解决方法

AppRtcMobile的build.gradle中注释掉多余的依赖

//                "../../../gen/examples/AppRTCMobile/generated_java",
//                "../../../gen/examples/AppRTCMobile_javalib/generated_java",

三、编译执行

Android studio编译后,可以直接连接手机进行调试了。生成的apk位于如下路径上:

out/Release/gradle/examples/AppRTCMobile/build/outputs/apk/debug/examples.AppRTCMobile-debug.apk

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

louis-tt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值