web-dev-qa-db-ja.com

Androidスタジオエラー:Gstreamerチュートリアルを実行しようとしたときにndkBuildの外部ネイティブビルドを実行しています

Gstreamerを実行しようとしていますAndroid tutorial-5 in Android Sudio 3.5( https://gitlab.freedesktop.org/gstreamer/ gst-docs/tree/master/examples/tutorials/Android)(https://gitlab.com/eduardoprado/gstreamer-tutorial5) しかし、次のエラーが発生します:

ERROR: Cause: executing external native build for ndkBuild C:\Users\Downloads\gst_docs_master_examples_tutorials_Android\examples\tutorials\Android\android-tutorial-1\jni\Android.mk. 

私は両方のgstreamer Androidのチュートリアルと、stackoverflowスレッド Gstreamerの例Android Studio )のチュートリアルを行っています。

最初の目標は、gstreamerをAndroid studio。

エラーがパスディレクトリの空白に関連しているいくつかのスレッドがありますが、確認しましたが、すべてのフォルダーに空白がありません。以下は、私が作業し、チュートリアルを実行するために適応させているファイルの一部です。

また、Windows環境変数GSTREAMER_ROOT_Androidを、解凍したgstreamerバイナリーに設定し、それをAndroid.mkファイルに設定しました。

local.propertiesファイル

## This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
#Mon Sep 09 08:16:12 EDT 2019
sdk.dir=C\:\\Users\\AppData\\Local\\Android\\Sdk
ndk.dir=C\:\\Users\\AppData\\Local\\Android\\Sdk\\ndk\\20.0.5594570

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := tutorial-5
LOCAL_SRC_FILES := tutorial-5.c
LOCAL_SHARED_LIBRARIES := gstreamer_Android
LOCAL_LDLIBS := -llog -landroid
include $(BUILD_SHARED_LIBRARY)

GSTREAMER_ROOT_Android := C\:\\gstreamer_Android_binaries

ifndef GSTREAMER_ROOT_Android
$(error GSTREAMER_ROOT_Android is not defined!)
endif

ifeq ($(TARGET_Arch_ABI),armeabi)
GSTREAMER_ROOT        := $(GSTREAMER_ROOT_Android)/arm
else ifeq ($(TARGET_Arch_ABI),armeabi-v7a)
GSTREAMER_ROOT        := $(GSTREAMER_ROOT_Android)/armv7
else ifeq ($(TARGET_Arch_ABI),arm64-v8a)
GSTREAMER_ROOT        := $(GSTREAMER_ROOT_Android)/arm64
else ifeq ($(TARGET_Arch_ABI),x86)
GSTREAMER_ROOT        := $(GSTREAMER_ROOT_Android)/x86
else ifeq ($(TARGET_Arch_ABI),x86_64)
GSTREAMER_ROOT        := $(GSTREAMER_ROOT_Android)/x86_64
else
$(error Target Arch ABI not supported: $(TARGET_Arch_ABI))
endif

GSTREAMER_NDK_BUILD_PATH  := $(GSTREAMER_ROOT)/share/gst-Android/ndk-build/
include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk
GSTREAMER_PLUGINS         := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_PLAYBACK) $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_SYS)
G_IO_MODULES              := gnutls
GSTREAMER_EXTRA_DEPS      := gstreamer-video-1.0
include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk

build.gradle(アプリ)

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 29
    buildToolsVersion "26.0.3"

    defaultConfig {
        applicationId "com.gst_sdk_tutorials.tutorial_5"
        minSdkVersion 14
        targetSdkVersion 29

        externalNativeBuild {
            ndkBuild {
                arguments "V=1"
            }
        }

        ndk {
            moduleName "tutorial-5"
            abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
        }
    }
    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }
}

build.gradle(プロジェクト)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.5.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

gradle-wrapper.properties

#Mon Sep 09 14:10:17 EDT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.Zip

[〜#〜] update [〜#〜]引数「V = 1」をndkBuildセクションに追加し、同じエラーを受け取りました:

ERROR: Cause: executing external native build for ndkBuild C:\Users\Downloads\gstreamer-tutorial5-master\app\src\main\jni\Android.mk
3
unmanned15

使用しているパスがWindowsのコマンドラインに対して単純に長すぎる可能性があります。何が起こっているのかをよりよく理解するには、_ndkBuildの引数のリストに"V=1"を追加すると、ビルドコンソールで実行されるすべてのビルドコマンドが表示されます。

0
Alex Cohn

arguments構成は、Android.defaultConfig.externalNativeBuild.ndkBuildではなくAndroid.externalNativeBuild.ndkBuildセクションに属しています。ドキュメントを参照してください: https://developer.Android.com/ndk/guides/cmake#variables

0
Dan Albert