当前位置: 首页 > 知识库问答 >
问题:

Android NDK:您的APP_BUILD_SCRIPT指向一个未知文件:./jni/Android.mk

谯志诚
2023-03-14
    null
include $(CLEAR_VARS)
LOCAL_PATH:= $(call my-dir)
LOCAL_CPP_FEATURES += -fno-exceptions
LOCAL_SRC_FILES := \
     Log.c \
     Calculate.c 

LOCAL_MODULE := libSoundTouch

include $(BUILD_SHARED_LIBRARY)

$my_project_path/jni/application.mk中添加了application.mk文件。

APP_PLATFORM := android-16
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PROJECT_PATH := /Users/myusername/Desktop/PROJECTS/ANDROID/WORKSPACE/NDKResearch

然后在bash shell中执行ndk-build

## cd ~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
## ~/Documents/ANDROID/android_ndk_r8a/ndk-build

只得到标题中提到的错误。

这是在Android NDK R4之前使用该文件的方式。出于兼容性原因,它仍然受到支持,但我们强烈鼓励您使用第一种方法,因为它简单得多,不需要修改/更改NDK安装树的目录。

所以我的问题是,有人成功地使用了第一种方法吗?它不起作用的原因是什么?

共有1个答案

汪泓
2023-03-14

对我起作用的是在我的。bashrc中添加以下代码

导出ndk_project_path=“.”

然后在项目目录中键入source~/.bashrcndk-build

 类似资料:
  • 两年前,我在android-7(艾克蕾尔)上开发了一个增强现实框架。由于AR应用是计算密集型任务,我开发了一个JNI c库,Java活动使用它来渲染和注册虚拟环境。在Java中获得的传感器读数被传递给underline c库,以计算虚拟环境的注册。三维对象是通过从GLSurfaceView调用的本地绘制函数来呈现的。这导致了大量的JNI呼叫。 现在我想将应用程序移植到android-15(冰淇淋三

  • 我的Android应用在使用时崩溃 这是我收到的唯一明显的错误消息: 无法将堆栈跟踪写入/data/anr/跟踪。txt(6738中的5571):没有这样的文件或目录 libMySharedLib.so 是从 ndk-build 生成的。我正在使用powerVR SDK,因此我假设这个库是事先在内部加载的。 如果我将我的代码分离到一个不同的共享库中,我可以让它工作,但这违背了我的需要(所有数据、指

  • 我刚刚创建了第一个使用JNI和NDK的Android应用程序,简单的Hello JNI。具有返回字符串的唯一函数。我签署了APK解包,如果我看到的.so文件似乎不是本地编译的。我想要一个二进制代码。我读取函数和字符串的名称。我的目标是使用SDK编写本机代码来隐藏未被proguard遮挡的字符串。我用的是Android Studio 2.1.2 建筑格拉德尔项目 Build.Gradle 应用 gr

  • 我试图建立FFMPEG库为我的Android应用程序使用NDK。我已经从它的网站上下载了源代码,我想我构建了它(这是我第一次尝试使用NDK和ffmpeg)。我已经创建了一个文件,我正在使用它从Mac OS X上的命令行执行它。 首先,我知道我需要Android。mk文件,所以我可以在我的应用程序中使用构建的库,但我不知道如何做到这一点,原因我在上面告诉过你。在我运行android文件夹中有一些文件

  • 我正在学习如何在C中使用并写了以下示例: 问:是否保证在所有情况下指向一个结构的指针都是指向它的第一个元素的完全相同的指针? 在这种特殊的情况下,它能像我预期的那样工作,但我不确定它是否能得到保证。编译器可以在开始时插入一些填充吗? 我唯一能找到的关于结构类型布局的是N1570的类型: 结构类型描述了一组按顺序分配的非空成员对象(在某些情况下,还包括一个不完整的数组),每个对象都有一个可选的指定名

  • 15.3.2.JNI 头文件 接下来需要做的首先是,创建相应的JNI头文件。这需要用到一个Java的标准工具,也就是javah。它附带在JDK中,你可以在JDK/bin中找到它。 跳转到项目的bin目录,执行: [Fibonacci/bin]> javah -jni com.marakana.FibLib javah -jni取一个类名作为参数。需要注意,不是所有的类都默认处于Java的Class