From 5441a572d99375fb1a74d84dd3d619a8518d484f Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Fri, 30 Nov 2018 18:12:26 +1100 Subject: [PATCH] tutorials/android: Update for NDK r18 changes libc++_shared needs to be enabled in the application in order for it to be included and used correctly for c++ plugins. Only symbols from libraries explicitly mentioned are exported from libgstreamer_android.so so we need to add a couple of deps to be able to access the necessary functions. Requires https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/31 https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/1 --- examples/tutorials/android/android-tutorial-1/build.gradle | 3 +-- examples/tutorials/android/android-tutorial-1/jni/Android.mk | 3 ++- .../tutorials/android/android-tutorial-1/jni/Application.mk | 1 + examples/tutorials/android/android-tutorial-1/jni/dummy.cpp | 0 examples/tutorials/android/android-tutorial-2/build.gradle | 3 +-- examples/tutorials/android/android-tutorial-2/jni/Android.mk | 3 ++- .../tutorials/android/android-tutorial-2/jni/Application.mk | 1 + examples/tutorials/android/android-tutorial-2/jni/dummy.cpp | 0 examples/tutorials/android/android-tutorial-3/build.gradle | 3 +-- examples/tutorials/android/android-tutorial-3/jni/Android.mk | 5 +++-- .../tutorials/android/android-tutorial-3/jni/Application.mk | 1 + examples/tutorials/android/android-tutorial-3/jni/dummy.cpp | 0 examples/tutorials/android/android-tutorial-4/build.gradle | 3 +-- examples/tutorials/android/android-tutorial-4/jni/Android.mk | 2 +- .../tutorials/android/android-tutorial-4/jni/Application.mk | 1 + examples/tutorials/android/android-tutorial-4/jni/dummy.cpp | 0 examples/tutorials/android/android-tutorial-5/build.gradle | 3 +-- examples/tutorials/android/android-tutorial-5/jni/Android.mk | 2 +- .../tutorials/android/android-tutorial-5/jni/Application.mk | 1 + examples/tutorials/android/android-tutorial-5/jni/dummy.cpp | 0 examples/tutorials/android/build.gradle | 2 +- 21 files changed, 20 insertions(+), 17 deletions(-) create mode 100644 examples/tutorials/android/android-tutorial-1/jni/dummy.cpp create mode 100644 examples/tutorials/android/android-tutorial-2/jni/dummy.cpp create mode 100644 examples/tutorials/android/android-tutorial-3/jni/dummy.cpp create mode 100644 examples/tutorials/android/android-tutorial-4/jni/dummy.cpp create mode 100644 examples/tutorials/android/android-tutorial-5/jni/dummy.cpp diff --git a/examples/tutorials/android/android-tutorial-1/build.gradle b/examples/tutorials/android/android-tutorial-1/build.gradle index fe84087..1b38d3c 100644 --- a/examples/tutorials/android/android-tutorial-1/build.gradle +++ b/examples/tutorials/android/android-tutorial-1/build.gradle @@ -29,8 +29,7 @@ android { targets "tutorial-1" // All archs except MIPS and MIPS64 are supported - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' - // x86_64 abis disabled because of https://bugzilla.gnome.org/show_bug.cgi?id=795454 + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } diff --git a/examples/tutorials/android/android-tutorial-1/jni/Android.mk b/examples/tutorials/android/android-tutorial-1/jni/Android.mk index ae15498..ceda28c 100644 --- a/examples/tutorials/android/android-tutorial-1/jni/Android.mk +++ b/examples/tutorials/android/android-tutorial-1/jni/Android.mk @@ -3,7 +3,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := tutorial-1 -LOCAL_SRC_FILES := tutorial-1.c +LOCAL_SRC_FILES := tutorial-1.c dummy.cpp LOCAL_SHARED_LIBRARIES := gstreamer_android LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) @@ -28,4 +28,5 @@ endif GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ GSTREAMER_PLUGINS := coreelements +GSTREAMER_EXTRA_LIBS := -liconv include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk diff --git a/examples/tutorials/android/android-tutorial-1/jni/Application.mk b/examples/tutorials/android/android-tutorial-1/jni/Application.mk index b8848e8..1f4ab31 100644 --- a/examples/tutorials/android/android-tutorial-1/jni/Application.mk +++ b/examples/tutorials/android/android-tutorial-1/jni/Application.mk @@ -1 +1,2 @@ APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 +APP_STL = c++_shared \ No newline at end of file diff --git a/examples/tutorials/android/android-tutorial-1/jni/dummy.cpp b/examples/tutorials/android/android-tutorial-1/jni/dummy.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/tutorials/android/android-tutorial-2/build.gradle b/examples/tutorials/android/android-tutorial-2/build.gradle index 0174070..e2caed9 100644 --- a/examples/tutorials/android/android-tutorial-2/build.gradle +++ b/examples/tutorials/android/android-tutorial-2/build.gradle @@ -29,8 +29,7 @@ android { targets "tutorial-2" // All archs except MIPS and MIPS64 are supported - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' - // x86_64 abis disabled because of https://bugzilla.gnome.org/show_bug.cgi?id=795454 + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } diff --git a/examples/tutorials/android/android-tutorial-2/jni/Android.mk b/examples/tutorials/android/android-tutorial-2/jni/Android.mk index 42ed3c6..e5a08f3 100644 --- a/examples/tutorials/android/android-tutorial-2/jni/Android.mk +++ b/examples/tutorials/android/android-tutorial-2/jni/Android.mk @@ -3,7 +3,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := tutorial-2 -LOCAL_SRC_FILES := tutorial-2.c +LOCAL_SRC_FILES := tutorial-2.c dummy.cpp LOCAL_SHARED_LIBRARIES := gstreamer_android LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) @@ -29,4 +29,5 @@ 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_SYS) +GSTREAMER_EXTRA_LIBS := -liconv include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk diff --git a/examples/tutorials/android/android-tutorial-2/jni/Application.mk b/examples/tutorials/android/android-tutorial-2/jni/Application.mk index b8848e8..1f4ab31 100644 --- a/examples/tutorials/android/android-tutorial-2/jni/Application.mk +++ b/examples/tutorials/android/android-tutorial-2/jni/Application.mk @@ -1 +1,2 @@ APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 +APP_STL = c++_shared \ No newline at end of file diff --git a/examples/tutorials/android/android-tutorial-2/jni/dummy.cpp b/examples/tutorials/android/android-tutorial-2/jni/dummy.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/tutorials/android/android-tutorial-3/build.gradle b/examples/tutorials/android/android-tutorial-3/build.gradle index 19b61e1..e959dd1 100644 --- a/examples/tutorials/android/android-tutorial-3/build.gradle +++ b/examples/tutorials/android/android-tutorial-3/build.gradle @@ -29,8 +29,7 @@ android { targets "tutorial-3" // All archs except MIPS and MIPS64 are supported - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' - // x86_64 abis disabled because of https://bugzilla.gnome.org/show_bug.cgi?id=795454 + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } diff --git a/examples/tutorials/android/android-tutorial-3/jni/Android.mk b/examples/tutorials/android/android-tutorial-3/jni/Android.mk index 537e621..316495f 100644 --- a/examples/tutorials/android/android-tutorial-3/jni/Android.mk +++ b/examples/tutorials/android/android-tutorial-3/jni/Android.mk @@ -3,7 +3,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := tutorial-3 -LOCAL_SRC_FILES := tutorial-3.c +LOCAL_SRC_FILES := tutorial-3.c dummy.cpp LOCAL_SHARED_LIBRARIES := gstreamer_android LOCAL_LDLIBS := -llog -landroid include $(BUILD_SHARED_LIBRARY) @@ -29,5 +29,6 @@ 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_SYS) $(GSTREAMER_PLUGINS_EFFECTS) -GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 +GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 gobject-2.0 +GSTREAMER_EXTRA_LIBS := -liconv include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk diff --git a/examples/tutorials/android/android-tutorial-3/jni/Application.mk b/examples/tutorials/android/android-tutorial-3/jni/Application.mk index b8848e8..1f4ab31 100644 --- a/examples/tutorials/android/android-tutorial-3/jni/Application.mk +++ b/examples/tutorials/android/android-tutorial-3/jni/Application.mk @@ -1 +1,2 @@ APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 +APP_STL = c++_shared \ No newline at end of file diff --git a/examples/tutorials/android/android-tutorial-3/jni/dummy.cpp b/examples/tutorials/android/android-tutorial-3/jni/dummy.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/tutorials/android/android-tutorial-4/build.gradle b/examples/tutorials/android/android-tutorial-4/build.gradle index d771f3c..32d8856 100644 --- a/examples/tutorials/android/android-tutorial-4/build.gradle +++ b/examples/tutorials/android/android-tutorial-4/build.gradle @@ -29,8 +29,7 @@ android { targets "tutorial-4" // All archs except MIPS and MIPS64 are supported - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' - // x86_64 abis disabled because of https://bugzilla.gnome.org/show_bug.cgi?id=795454 + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } diff --git a/examples/tutorials/android/android-tutorial-4/jni/Android.mk b/examples/tutorials/android/android-tutorial-4/jni/Android.mk index 9c19ac5..df21868 100644 --- a/examples/tutorials/android/android-tutorial-4/jni/Android.mk +++ b/examples/tutorials/android/android-tutorial-4/jni/Android.mk @@ -3,7 +3,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := tutorial-4 -LOCAL_SRC_FILES := tutorial-4.c +LOCAL_SRC_FILES := tutorial-4.c dummy.cpp LOCAL_SHARED_LIBRARIES := gstreamer_android LOCAL_LDLIBS := -llog -landroid include $(BUILD_SHARED_LIBRARY) diff --git a/examples/tutorials/android/android-tutorial-4/jni/Application.mk b/examples/tutorials/android/android-tutorial-4/jni/Application.mk index b8848e8..1f4ab31 100644 --- a/examples/tutorials/android/android-tutorial-4/jni/Application.mk +++ b/examples/tutorials/android/android-tutorial-4/jni/Application.mk @@ -1 +1,2 @@ APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 +APP_STL = c++_shared \ No newline at end of file diff --git a/examples/tutorials/android/android-tutorial-4/jni/dummy.cpp b/examples/tutorials/android/android-tutorial-4/jni/dummy.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/tutorials/android/android-tutorial-5/build.gradle b/examples/tutorials/android/android-tutorial-5/build.gradle index 108b481..10230fb 100644 --- a/examples/tutorials/android/android-tutorial-5/build.gradle +++ b/examples/tutorials/android/android-tutorial-5/build.gradle @@ -29,8 +29,7 @@ android { targets "tutorial-5" // All archs except MIPS and MIPS64 are supported - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' - // x86_64 abis disabled because of https://bugzilla.gnome.org/show_bug.cgi?id=795454 + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } diff --git a/examples/tutorials/android/android-tutorial-5/jni/Android.mk b/examples/tutorials/android/android-tutorial-5/jni/Android.mk index 80e7b4e..b696566 100755 --- a/examples/tutorials/android/android-tutorial-5/jni/Android.mk +++ b/examples/tutorials/android/android-tutorial-5/jni/Android.mk @@ -3,7 +3,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := tutorial-5 -LOCAL_SRC_FILES := tutorial-5.c +LOCAL_SRC_FILES := tutorial-5.c dummy.cpp LOCAL_SHARED_LIBRARIES := gstreamer_android LOCAL_LDLIBS := -llog -landroid include $(BUILD_SHARED_LIBRARY) diff --git a/examples/tutorials/android/android-tutorial-5/jni/Application.mk b/examples/tutorials/android/android-tutorial-5/jni/Application.mk index b8848e8..1f4ab31 100644 --- a/examples/tutorials/android/android-tutorial-5/jni/Application.mk +++ b/examples/tutorials/android/android-tutorial-5/jni/Application.mk @@ -1 +1,2 @@ APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 +APP_STL = c++_shared \ No newline at end of file diff --git a/examples/tutorials/android/android-tutorial-5/jni/dummy.cpp b/examples/tutorials/android/android-tutorial-5/jni/dummy.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/tutorials/android/build.gradle b/examples/tutorials/android/build.gradle index 4a706d9..55db43f 100644 --- a/examples/tutorials/android/build.gradle +++ b/examples/tutorials/android/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.1' + classpath 'com.android.tools.build:gradle:3.1.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files -- GitLab