gpt4 book ai didi

android - 无法使用 Android Studio 构建 GStreamer 教程

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:29 27 4
gpt4 key购买 nike

我正在尝试构建与 gstreamer-sdk-android-arm-debug-2013.6 bundle 在一起的教程。 src/jni目录下的Android.mk文件(教程1项目)引用了GSTREAMER_SDK_ROOT等环境变量。据我所知,Android Studio 不会使用/将环境变量传递给构建脚本。是否有修改 makefile 和定义/检索构建脚本所需的键/值对的最佳实践?

最佳答案

好的,我有一个可行的解决方案。您可以将环境变量传递给 ndk-build(或 gradle Exec 生成的任何其他进程)。在我的例子中,我想为 cleanbuild 任务设置这些。这是使用 tasks.withType(Exec) 完成的。此处为所有 Exec 任务设置环境参数。

对于 GSTREAMER_SDK_ROOT,我在 local.properties 中添加了一个条目:

gst.dir=/Users/svenyonson/sdk/gstreamer-sdk-android-arm-debug-2013.6

对于 PATH,我使用了派生进程的默认值并添加了我需要的内容。

这是 build.gradle 的工作版本:

apply plugin: 'com.android.application'

android {
compileSdkVersion 19
buildToolsVersion "20.0.0"

defaultConfig {
applicationId "com.gst_sdk_tutorials.tutorial_1"
minSdkVersion 19
targetSdkVersion 19
}

sourceSets.main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/libs'
java.srcDirs += 'src/main/jni/src'
}

tasks.withType(Exec) {

def localProperties = new Properties()
localProperties.load(project.rootProject.file('local.properties').newDataInputStream())
def gstDir = localProperties.getProperty('gst.dir')

environment = [:]
environment['PATH'] = System.getenv("PATH")+ ":/usr/local/bin"
environment['GSTREAMER_SDK_ROOT'] = gstDir
}


task buildNative(type: Exec, description: 'Compile JNI source via NDK') {

def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath,
'-j', Runtime.runtime.availableProcessors(),
'all',
'NDK_DEBUG=1',
'V=1',
'APP_PLATFORM=android-19'

}

task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath,
'clean'
}

clean.dependsOn 'cleanNative'

tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}

项目现在构建并运行。您唯一需要做的就是将 ndk.dir 添加到 local.properties:

sdk.dir=/Users/svenyonson/sdk/android-sdk
ndk.dir=/Users/svenyonson/sdk/android-ndk-r9d
gst.dir=/Users/svenyonson/sdk/gstreamer-sdk-android-arm-debug-2013.6

还有一件事:这些示例不会使用 android-ndk-r10d 构建。请务必使用 android-ndk-r9d

关于android - 无法使用 Android Studio 构建 GStreamer 教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com