我如何在NDK-BUILD中构建arcore camera_utility共享库?

问题描述 投票:0回答:1

我正在尝试在NDK_BUILD中建立'arcore相机实用程序'库,在这里:https://github.com/google-ar/arcore-unity-sdk/tree/master/Assets/GoogleARCore/Examples/ComputerVision/Plugins/src

使用本指南:https://yeephycho.github.io/2016/10/20/How-to-Use-NDK-to-Build-A-Shared-Android_Native-Library/我至少能够将其编译为libarcore_camera_utility.so文件。不仅如此,我的应用程序在电话上还可以识别它,而没有得到DLL丢失错误,我得到了一个错误:“ EntryPointNotFoundException:无法在'arcore_camera_utility'中找到名为'TextureReader_create'的入口点。”这意味着它至少现在找到了文件。

。so的文件大小只有6k,所以似乎我没有正确编译它,因为该软件包随附的已经工作的32bit版本是100k,基于这个问题,看来我遗漏了什么? :Entry point not found, Android .so file

我的Android.mk文件为:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := arcore_camera_utility_shared
LOCAL_C_INCLUDES += \
LOCAL_SRC_FILES := camera_utility.cc gl_utility.cc texture_reader.cc
include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := arcore_camera_utility
LOCAL_WHOLE_STATIC_LIBRARIES := arcore_camera_utility_shared
include $(BUILD_SHARED_LIBRARY)

而且我的Application.mk文件包含:

APP_ABI := arm64-v8a
APP_PLATFORM := android-24
APP_STL := c++_static
APP_BUILD_SCRIPT := ./jni/Android.mk

我是否以不包含代码的方式构建它?

android unity3d arcore ndk-build
1个回答
0
投票

为arm 64位目标编译arcore_camera_utility-

1。)创建一个名为“ arcorelibrary”的新目录,然后创建一个名为“ jni”的子目录]

2。)下载此zip:https://github.com/google-ar/arcore-unity-sdk/blob/master/Assets/GoogleARCore/Examples/ComputerVision/Plugins/src/arcore_camera_utility.zip

3。)获取三个.cc文件和三个.h文件并将它们放置在jni目录中

4。)创建一个名为'Android.mk'的文件,并将其放置在jni目录中,其内容如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= arcore_camera_utility_static
LOCAL_SRC_FILES:= camera_utility.cc gl_utility.cc texture_reader.cc
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_EXPORT_LDLIBS    := -llog -landroid -lEGL -lGLESv2 -lGLESv3
include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := arcore_camera_utility
LOCAL_WHOLE_STATIC_LIBRARIES := arcore_camera_utility_static
include $(BUILD_SHARED_LIBRARY)

5。)创建一个名为'Application.mk'的文件,并将其放在jni目录中,其内容如下:

APP_ABI := arm64-v8a
APP_PLATFORM := android-24
APP_STL := c++_static
APP_BUILD_SCRIPT := ./jni/Android.mk

6。)下载Android NDK并解压缩到某个位置(所需版本取决于所使用的Unity版本)https://developer.android.com/ndk/downloads/older_releases.html

7。)打开终端或Powershell,转到项目的根目录(arcorelibrary)

8。)创建到您解压缩Android NDK位置的路径(Powershell示例:)>

$env:Path += ";C:\[where-ever-you-unzipped]\android-ndk-r13b-windows-x86_64\android-ndk-r13b"

9。)运行:

ndk-build.cmd
© www.soinside.com 2019 - 2024. All rights reserved.