我正在尝试将 Oboe 原生库合并到我正在制作的 DAW 中。它似乎工作正常,应用程序运行似乎没有问题。问题是,Android Studio 似乎无法从 Oboe 目录中找到标题。这导致我无法使用 Android Studio 中的许多功能,例如预测等。它看起来像这样(无法上传图片):
#include <jni.h>
#include <string>
#include <android/log.h>
#include <oboe/Oboe.h>
using namespace std;
extern "C" JNIEXPORT void JNICALL
Java_com_ralleq_nsynth_MainActivity_buildAudioStream(JNIEnv *env, jclass /* this */) {
oboe::AudioStreamBuilder builder;
oboe::AudioStream *stream = nullptr;
oboe::Result result = builder.openStream(&stream);
__android_log_print(ANDROID_LOG_VERBOSE, "NATIVE", "Didn't crash", 0);
}
除了每次我引用“双簧管”时,文本都会变红。
将鼠标悬停在红色文本上会显示一个弹出窗口,上面写着:“找不到'双簧管'”。这很奇怪,因为该项目使用编写的代码编译和运行没有问题。我认为这可能与 Android Studio 中未正确定义的路径有关。我尝试创建一个共享库,模仿双簧管存储库中给出的示例代码,并尝试将其实现为库而不是 CMakeList 文件中的子目录,但最终返回到在我的项目文件夹中引用 git 导入的项目作为子目录。
在makefile中Oboe的实现:
set(OBOE_DIR /AndroidStudioProjects/oboe)
add_subdirectory(${OBOE_DIR} ./oboe)
include_directories(${OBOE_DIR} ./include)
target_link_libraries( # Specifies the target library.
native-lib
oboe
log
# Links the target library to the log library
# included in the NDK.
${log-lib})
我注意到,当我刷新 c++ 项目时,已经添加了对库的引用,但我似乎无法访问它们。我根本不明白,Android Studio 怎么找不到标头。
我一直在寻找其他有同样问题的人,但它一直是关于崩溃而不是 Android Studio 软件本身的问题。
提前感谢您的帮助。
- 拉斯穆斯