東川印記

一本東川,笑看爭龍斗虎;寰茫兦者,度橫佰昧人生。

WebRTC编译android

2014年10月20日星期一



错误

  1. ninja: Entering directory `out/Debug'
  2. ninja: warning: multiple rules generate icudtl.dat. builds involving this target will not be correct; continuing anyway
  3. [14/419] ACTION OpenSlDemo: build_open...o_apk_8c1c7bfb0da051b5ece8e5ecba8d010f
  4. FAILED: cd ../../webrtc; bash -ec "rm -f \"../out/Debug/OpenSlDemo-debug.apk\" && mkdir -p ../webrtc/examples/android/opensl_loopback/libs/armeabi-v7a && mkdir -p ../out/Debug/obj/webrtc/OpenSlDemo.gen && /home/senrsl/test/WebRTC20140723_bak/trunk/third_party/android_tools/ndk//toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip -o ../webrtc/examples/android/opensl_loopback/libs/armeabi-v7a/libopensl-demo-jni.so ../out/Debug/libopensl-demo-jni.so && cp ../out/Debug/lib.java/audio_device_module_java.jar ../webrtc/examples/android/opensl_loopback/libs/ &&cd ../webrtc/examples/android/opensl_loopback && { ANDROID_SDK_ROOT=/home/senrsl/test/WebRTC20140723_bak/trunk/third_party/android_tools/sdk/ ant debug > ../../../../out/Debug/obj/webrtc/OpenSlDemo.gen/ant.log 2>&1 ||   { cat ../../../../out/Debug/obj/webrtc/OpenSlDemo.gen/ant.log ; exit 1; } } && cd - > /dev/null && cp ../webrtc/examples/android/opensl_loopback/bin/OpenSlDemo-debug.apk \"../out/Debug/OpenSlDemo-debug.apk\""
  5. Buildfile: /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/build.xml
  6. -set-mode-check:
  7. -set-debug-files:
  8. -check-env:
  9.  [checkenv] Android SDK Tools Revision 23.0.2
  10.  [checkenv] Installed at /home/senrsl/test/WebRTC20140723_bak/trunk/third_party/android_tools/sdk
  11. -setup:
  12.      [echo] Project Name: OpenSlDemo
  13.   [gettype] Project Type: Application
  14. -set-debug-mode:
  15. -debug-obfuscation-check:
  16. -pre-build:
  17. -build-setup:
  18. [getbuildtools] Using latest Build Tools: 20.0.0
  19.      [echo] Resolving Build Target for OpenSlDemo...
  20. [gettarget] Project Target:   Android 4.4.2
  21. [gettarget] API level:        19
  22.      [echo] ----------
  23.      [echo] Creating output directories if needed...
  24.     [mkdir] Created dir: /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/bin/rsObj
  25.     [mkdir] Created dir: /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/bin/rsLibs
  26.      [echo] ----------
  27.      [echo] Resolving Dependencies for OpenSlDemo...
  28. [dependency] Library dependencies:
  29. [dependency] No Libraries
  30. [dependency]
  31. [dependency] ------------------
  32.      [echo] ----------
  33.      [echo] Building Libraries with 'debug'...
  34.    [subant] No sub-builds to iterate on
  35. -code-gen:
  36. [mergemanifest] No changes in the AndroidManifest files.
  37.      [echo] Handling aidl files...
  38.      [aidl] No AIDL files to compile.
  39.      [echo] ----------
  40.      [echo] Handling RenderScript files...
  41.      [echo] ----------
  42.      [echo] Handling Resources...
  43.      [aapt] No changed resources. R.java and Manifest.java untouched.
  44.      [echo] ----------
  45.      [echo] Handling BuildConfig class...
  46. [buildconfig] Generating BuildConfig class.
  47. -pre-compile:
  48. -compile:
  49.     [javac] Compiling 4 source files to /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/bin/classes
  50.     [javac] /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/src/org/webrtc/app/OpenSlDemo.java:47: 警告: [static] static 方法应由类型名称OpenSlRunner而不是表达式限定
  51.     [javac]     runner.RegisterApplicationContext(getApplicationContext());
  52.     [javac]           ^
  53.     [javac] /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/src/org/webrtc/app/OpenSlDemo.java:59: 警告: [static] static 方法应由类型名称OpenSlRunner而不是表达式限定
  54.     [javac]       runner.Stop();
  55.     [javac]             ^
  56.     [javac] /home/senrsl/test/WebRTC20140723_bak/trunk/webrtc/examples/android/opensl_loopback/src/org/webrtc/app/OpenSlDemo.java:63: 警告: [static] static 方法应由类型名称OpenSlRunner而不是表达式限定
  57.     [javac]       runner.Start();
  58.     [javac]             ^
  59.     [javac] 错误: 发现警告, 但指定了 -Werror
  60.     [javac] 1 个错误
  61.     [javac] 3 个警告
  62. BUILD FAILED
  63. /home/senrsl/test/WebRTC20140723_bak/trunk/third_party/android_tools/sdk/tools/ant/build.xml:720: The following error occurred while executing this line:
  64. /home/senrsl/test/WebRTC20140723_bak/trunk/third_party/android_tools/sdk/tools/ant/build.xml:734: Compile failed; see the compiler error output for details.
  65. Total time: 2 seconds
  66. [14/419] CXX obj/webrtc/modules/rtp_rt...odules_unittests.rtp_sender_unittest.o
  67. ninja: build stopped: subcommand failed.
  68. senrsl@senrsl-ubuntu:~/test/WebRTC20140723_bak/trunk$
android
http://blog.csdn.net/chenyafei617/article/details/38085409
VS
http://www.cnblogs.com/wanglinhai/p/3588251.html
网页
IOS
WP
都有
http://www.cnblogs.com/tkppain/archive/2013/06/07/3123408.html

----------------------------
查看当前文件夹大小
senrsl@senrsl-ubuntu:~/WebRTC/trunk$ du -h --max-depth=0
7.1G    .
---------------------------
终于编译成功了
步骤

1,环境
ubuntu14.04.1,x64;
jdk,JAVA_HOME=/home/senrsl/java/jdk1.6.0_45
环境变量中的adb跟ndk-build注释掉,source生效;
git,  sudo apt-get install git
gclient,
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

然后配置gclient环境变量  DEPOT_TOOLS_HOME=/home/senrsl/test/depot_tools

安装编译工具
sudo apt-get install g++ python libnss3-dev libasound2-dev libpulse-dev libjpeg62-dev libxv-dev libgtk2.0-dev libexpat1-dev


2,下载代码
  1. #创建目录
  2. mkdir WebRTC
  3. cd WebRTC
  4. #初始化gclient
  5. gclient config http://webrtc.googlecode.com/svn/trunk
  6. 配置目标系统版本
  7. echo "target_os = ['android', 'unix']" >> .gclient
  8. 同步代码
  9. gclient sync --nohooks
代码体积7.1G
自认为干不掉GFW,好吧,我去下了份别人下好的。。。。

 
3,编译代码
  1. 设置环境
  2. cd truck
  3.  source ./build/android/envsetup.sh
  4. export GYP_DEFINES="$GYP_DEFINES OS=android"
  5. 下载编译所依赖的包或工具
  6. ./build/install-build-deps.sh


然后,下载编译所需的build文件之类
senrsl@senrsl-ubuntu:~/test/WebRTC$ gclient runhooks --force


这一步执行完之后,目录里会有out文件夹。。。。

然后,编译
编译Debug版
senrsl@senrsl-ubuntu:~/test/WebRTC$ cd trunk/
senrsl@senrsl-ubuntu:~/test/WebRTC/trunk$ ninja -C out/Debug

编译完成后,在/home/senrsl/test/WebRTC/trunk/out/Debug目录下可以看到三个apk。
AppRTCDemo-debug.apk
OpenSlDemo-debug.apk
WebRTCDemo-debug.apk

编译 Release版 ninja -C out/Release


生成的东西跟Debug下差不多。。。。
现在的truck大小。。。。12G。。。。


编译完成,导入eclipse。
源码目录
AppRTCDemo-debug.apk-------/home/senrsl/test/WebRTC/trunk/talk/examples/android
OpenSlDemo-debug.apk------/home/senrsl/test/WebRTC/trunk/webrtc/examples/android/opensl_loopback
WebRTCDemo-debug.apk-----/home/senrsl/test/WebRTC/trunk/webrtc/examples/android/media_demo
折腾WebRTC,导入eclipse

新出了android 5.0
下个5.0  看看
模拟器跑不起来
ioctl(KVM_CREATE_VM) failed:
16 Device or resource busy
他说他很忙。。。。
然后度娘:http://blog.csdn.net/tian9246/article/details/39437015

  1. Stop all emulators.
  2. Run command: 'sudo rmmod kvm_intel kvm'

执行后果然跑起来了。。。。

项目直接导入就能跑。。。。。。
[2014-10-20 09:41:28 - WebRTCDemo] ------------------------------
[2014-10-20 09:41:28 - WebRTCDemo] Android Launch!
[2014-10-20 09:41:28 - WebRTCDemo] adb is running normally.
[2014-10-20 09:41:28 - WebRTCDemo] No Launcher activity found!
[2014-10-20 09:41:28 - WebRTCDemo] The launch will only sync the application package on the device!
[2014-10-20 09:41:28 - WebRTCDemo] Performing sync
[2014-10-20 09:41:28 - WebRTCDemo] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.
[2014-10-20 09:41:31 - WebRTCDemo] Uploading WebRTCDemo.apk onto device '4300b9053f64306b'
[2014-10-20 09:41:31 - WebRTCDemo] Installing WebRTCDemo.apk...
[2014-10-20 09:41:33 - WebRTCDemo] Success!
[2014-10-20 09:41:33 - WebRTCDemo] /WebRTCDemo/bin/WebRTCDemo.apk installed on device
[2014-10-20 09:41:33 - WebRTCDemo] Done!

1 条评论

  1. 你好,我想请问一下您上边贴出的错误是如何解决的呢?

    回复删除