正常来说无需自己编译sdk,使用官方提前编译好的sdk即可。

下面是从我的demo中摘出来的gradlepei'zhi
app中的build.gradle

plugins {
    id 'com.android.application'
}
    
android {
    compileSdkVersion 30
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "com.evenvi.jitsimeets1"
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

    implementation ('org.jitsi.react:jitsi-meet-sdk:2.+') { transitive = true }
}

项目中的build.gradle

// 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:4.1.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

首先,请确保正确设置您的开发环境。

关于依赖项的说明:除了SDK之外,Jitsi还为Jitsi Maven存储库发布了一些SDK依赖项的二进制Maven工件(否则无法公开获得)。当您计划使用从源代码构建的SDK时,您可能会使用比用于创建二进制SDK工件的源代码版本新的(或至少是不同的)源代码版本。 因此,项目中将需要的依赖项也可能与Jitsi Maven存储库中发布的依赖项不同。这可能会由于不可用的依赖关系而导致构建问题。

如果要使用从源构建的SDK,则可能会受益于组成包含这些依赖项的本地Maven存储库。以下文本描述了如何创建一个包含SDK以及这些依赖项的存储库。为了便于说明,我们将本地Maven存储库的位置定义为/tmp/repo

以源代码形式,Android SDK依赖项由Jitsi Meet项目的package.json和package-lock.json锁定/固定。要获取数据,请在jitsi-meet项目目录中执行NPM:

npm install

这将以二进制格式或源代码格式在 /node_modules/下的某个位置提取依赖项

NPM会以源代码或二进制格式下载第三方的React Native模块(适用于Android的Jitsi Meet SDK)。这些需要组装成Maven工件,然后发布到本地Maven存储库。提供了一个脚本来简化此操作。在jitsi-meet项目存储库的根目录中,运行:

./android/scripts/release-sdk.sh /tmp/repo

在此示例中,这将构建并发布SDK及其所有依赖项到指定的Maven存储库(/tmp/repo)。

您现在可以使用工件了。在您的项目中,将上面使用的Maven存储库(/tmp/repo)添加到顶级build.gradle文件中:

allprojects {
    repositories {
        maven { url "file:/tmp/repo" }
        google()
        jcenter()
    }
}

发布所有子项目时,可以使用本地存储库替换Jitsi存储库maven { url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases" }。如果不这样做,则必须添加两个存储库。确保首先列出您的本地存储库!

然后,将依赖项org.jitsi.react:jitsi-meet-sdk定义到模块的build.gradle文件中:

implementation ('org.jitsi.react:jitsi-meet-sdk:+') { transitive = true }

请注意,无需显式添加其他依赖项,因为它们将作为jitsi-meet-sdk的传递性依赖项引入。

Tags: webrtc, jitsi

Related Posts:
  • [尚无相关文章]

Leave a Comment