我创建了一个使用sip协议的android应用。 因此,我使用了为Android构建的linphone-sdk aar库。

该库是基于Ubuntu VM构建的,主要开发工作是在Windows上完成的,因为暂时我使用不同的仿真器,发现在主机上比在来宾vm上工作效率更高。

我设法使用sipp作为sip服务器来创建SIP注册和身份验证方案。

Java级别的调试过程效果很好。

但是,我还需要调试c级,因为我想弄清楚sip堆栈如何工作以进行自定义更改。

我采取的最初步骤是:

我从Android-studio中的SDK Tools安装了LLDB。

在Android-studio Debugger中,我选择了“ Dual”,并将路径添加到linphone-sdk调试库libbctoolbox.so,liblinphone.so,libortp.so,libc ++ _ shared.so,libmediastreamer.so

在android应用中,我使用了回调

public void onRegistrationStateChanged(Core core, ProxyConfig proxyConfig, RegistrationState registrationState, String s) {

我还在linphonesdk文件夹中的以下本机文件中添加了断点:

static void register_success(SalOp *op, bool_t registered) ->在callbacks.c

static void registrationStateChange(LinphoneCore *lc, LinphoneProxyConfig* proxy,LinphoneRegistrationState state,const char* message)

->在linphonecore_jni.cc

但是随着代码没有在上面的断点处暂停

我创建了一个包含aar库的不同模块,并将其作为依赖项添加到应用程序中。 gradle脚本现在如下:

应用程式

apply plugin: 'com.android.application'

android {

compileSdkVersion 28

defaultConfig {

applicationId "com.test.testapp"

minSdkVersion 23

targetSdkVersion 28

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:28.0.0'

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

testImplementation 'junit:junit:4.12'

androidTestImplementation 'com.android.support.test:runner:1.0.2'

androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

implementation 'org.linphone.core:linphone-sdk-android-debug@aar'

//releaseImplementation 'org.linphone:liblinphone-sdk:4.0.1'

}

myapp

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {

google()

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:3.5.2'

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

google()

jcenter()

// maven {

// url "https://linphone.org/releases/maven_repository/"

// }

flatDir { dirs 'libs' }

}

}

task clean(type: Delete) {

delete rootProject.buildDir

}

linphonesdk aar

configurations.maybeCreate("default")

artifacts.add("default", file('linphone-sdk-android-debug.aar'))

有谁知道我在做什么错。 是配置问题,还是我选择了错误的本机c文件作为断点?

由于我在android开发和使用linphone方面都相当新,因此任何提示都将非常有用

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐