您的位置:首页 > 编程语言 > Java开发

解决关于sipdroid导入eclipse后编译完成,发布的apk安装之后出现音频解码器出现问题的情况!

2013-10-23 11:16 831 查看
之前写的文章中,已经成功解决了如何把sipdroid源代码成功导入eclipse的问题,但是成功导入后,发现又有新的问题出现,主要是在使用的时候会接通一下就断了,原因是音频解码器不兼容。这个问题困扰了我很久,后来在查资料的时候,发现这样一个解决方法,成功解决音频解码器不兼容的问题

首先,要下载Android NDK,现在最新的版本已经是r9了,下载之后,解压到无中文目录的硬盘下待用!

然后参照该牛人的解决的方法就可以解决音频解码器不兼容的问题/article/11404748.html

sipdroid项目是谷歌与几家大公司合作开发的一个基于sip协议的语音、视频通讯开源项目。该项目共24个包,140多个类,要吃透该项目不是一周,甚至一个月的事。

要研究该项目首先要拿到该项目的源代码,然后编译通过才能进行研究。以下介绍一下在Windows下如何下载和编译该项目。

一、下载sipdroid项目源代码

sipdroid项目是托管在SVN服务器上的,所以要拿到sipdroid源代码,那么就要使用SVN客户端检出该项目。如果你用eclipse开发安卓项目的话,那么只需要

1.在eclipse中添加一个叫sublipse的插件

a.sublipse的网站地址是http://subclipse.tigris.org/

b.选择Download and Install,根据自己eclipse的版本获取相应的sublipse

c.我的eclipse是3.7 Indigo的所以下载的sublipse的地址是:http://subclipse.tigris.org/update_1.8.x,或者下载压缩包,压缩包地址为:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240



d.在eclipse中选择Help-Install new software...添加sublipse,安装完该插件后重启一下eclipse

e.调出svn repositories 把sipdroid项目的地址添加到新的远程文件中,地址为:http://sipdroid.googlecode.com/svn/trunk/

f.选择检出,获取sipdroid源代码

二、配置sipdroid源代码编译环境

下载下来的sipdroid项目在eclipse中名为SipUA,带有个红色的感叹号,这个时候提示缺少project.properties文件。需要经过如下步骤才能决解环境配置问题。

1.将android-sdk\tools的目录添加到系统环境变量中

2.使用android update project -p -t android-8命令升级项目。其中-p后面带的是sipdroid项目的绝对路径,我的sipdroid的路径是D:\mds\java_android\private\workspace\java_workspace\SipUA,所以该命令为:

android update project -p D:\mds\java_android\private\workspace\java_workspace\SipUA -t android-8正确情况下会生成project.properties文件,控制窗口如下图:



这个时候提示Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.只要右键项目选择properties,设置一下Java编译器就行了。具体如下图:



三、编译sipdroid项目源代码

sipdroid项目的编译需要使用NDK来编译。NDK是ANDROID项目中的JAVA层能够调用C/C++代码编写的.SO库。使用NDK前需要考虑到:

a.如果相同功能的实现在ANDROID API中已经可用,那么就不要使用NDK

b.在1不成立的情况下,某一功能使用C/C++代码效率很高,那么可以考虑使用NDK

使用NDK编译C/C++代码,需要下载安装NDK。现在最新版本是R8。R7以前的NDK需要另外安装CYGWIN才能编译。R7后只需要把NDK安装上就行了。NDK的下载地址为:
http://developer.android.com/tools/sdk/ndk/index.html下载后解压就可以使用了。注意应避免路径有中文字符或者空格。然后为eclipse设置NDK,接着就可以设置项目的NDK编译了。
1.右键SipUA选择Properties,然后选择Builder,新建一个Builder



2.选择Program然后点击OK



3.为Builder起一个名字,选择Main选项,点击Browse File System,选择NDK目录下的ndk-build.cmd,点击Browse Workspace,选中SipUA项目,最后点击Apply。



4.选择Reffresh选项,勾选Refresh resourcces upon...点击Apply。



5.选择Build Options,勾选During auto builds,During a Clen,Specify working set of relevant resourcces...。点击Specify Resources选择SipUA项目,最后点击Apply。



到此,设置NDK编译的工作已经完成。但是项目会报错:D:/mds/java_android/android-ndk-r8b/build/core/add-application.mk:143:
*** Android NDK: Aborting... . Stop.

有网友说:

把jni/Application.mk中的APP_PROJECT_PATH := $(call my-dir)改为APP_PROJECT_PATH
:= $(call my-dir)/..此时报错为D:/mds/java_android/android-ndk-r8b/build/core/build-static-library.mk:29: *** Android NDK: Aborting . Stop.;然后把Android.mk中第88行加上include
$(CLEAR_VARS)保存即可。但是我将编译好的项目安装到手机上,然后视频,发现无法联通视频。于是把网上发布的APK的.SO库拿出来替换掉编译好的.SO库,发现只有当手机发起通话时,PC端才能接收到视频,而手机无法显示PC段的视频。

虽然解决了音频解码器问题,但我发现在某些手机上还是有问题,不知道该怎么解决!希望各位路过的大神给了说法!谢谢了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐