gpt4 book ai didi

android - 在 Android 的第二个项目中添加 .so 库

转载 作者:行者123 更新时间:2023-11-28 07:10:36 27 4
gpt4 key购买 nike

我在 Android 中用 C++ 构建了一个源代码,并创建了一个 DSP.so。现在我想在第二个项目中使用这个 .so。我能怎么做?在我的第二个项目中,我有这个结构:

Android.mk:

LOCAL_PATH := $(call my-dir)



include $(CLEAR_VARS)

LOCAL_SRC_FILES := nativo.cpp Parameters.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS += -llog -ldl
LOCAL_MODULE := native_code


include $(BUILD_SHARED_LIBRARY)

应用程序.mk

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_STL := stlport_static
APP_ABI := armeabi
APP_PLATFORM := android-8

还有我的 nativo.cpp

#include "nativo.h"

#include "Parameters.h"
#include <correlation.h>
#include <iostream>
#include <stdio.h>

using namespace std;
using namespace splab;

#include <android/log.h>

#define LOG_TAG "NATIVO"
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))


JNIEXPORT jlong JNICALL Java_com_example_vamostelo_Processing_init_1variables
(JNIEnv *, jclass){

}



JNIEXPORT jchar JNICALL Java_com_example_vamostelo_Processing_prueba_1nativa
(JNIEnv *, jclass, jlong, jbyteArray, jint){


}

文件 correlation.h 是我构建的库中的一个文件。那么我该怎么做才能添加这个 .so 并且在我的第二个项目中我可以使用这个库的功能?

谢谢

最佳答案

您必须从 DSP.so 创建一个“本地共享库”,并在构建您的模块时引用它。

像这样的 Android.mk 应该可以做到:

LOCAL_PATH := $(call my-dir)

# Create `DSP-prebuilt` local prebuilt library from `DSP.so`
include $(CLEAR_VARS)
LOCAL_MODULE := DSP-prebuilt
LOCAL_SRC_FILES := path/to/DSP.so
LOCAL_EXPORT_C_INCLUDES := path/to/DSP/headers/folder
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := nativo.cpp Parameters.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS += -llog -ldl
LOCAL_MODULE := native_code
# Reference the local prebuilt:
LOCAL_SHARED_LIBRARIES := DSP-prebuilt
include $(BUILD_SHARED_LIBRARY)

请注意,生成的 libs 文件夹将同时包含 libDSP-prebuilt.solibnative_code.so,它们都是 所必需的>native_module引用 DSP

希望这对您有所帮助!

关于android - 在 Android 的第二个项目中添加 .so 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21041231/

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