对 AAssetManager_fromJava 的未定义引用

2024-06-26

我正在尝试使用 AAssetManager 从 Android apk 访问资源。然而,我不断得到 “未定义对 AAssetManager_fromJava 的引用”,即使我已包含 asset_manager.h 和 asset_manager_jni.h asset_manager.h 中的其他函数,如 AAssetManager_openDir(mgr, "") 等也无法引用。

这是完整的代码

#define EXPORT_API

#include <string.h>
#include <jni.h>
#include <android\log.h>

#include <sys\types.h>
#include <android\asset_manager.h>
#include <android\asset_manager_jni.h>

#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "com.devin - native", __VA_ARGS__)

JNIEnv* env=0;

#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* pvt){
    LOGD("JNI_OnLoad() called");
    vm->AttachCurrentThread(&env, 0);
    return JNI_VERSION_1_2;
}

EXPORT_API void LoadAsset(char* filename, jobject assetManager){
    AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
        /* More stuff */
}

#ifdef __cplusplus
};
#endif

此代码位于 .cpp 文件中,并使用 NDK R8 进行编译。我在这里做错了什么吗?


Android Studio 开发人员,如果您有名为“CMakeList.txt”的ExternalNativeBuild 文件,则必须将此代码附加到文件 CMakeList.txt

find_library( # Sets the name of the path variable.
          android-lib

          # Specifies the name of the NDK library that
          # you want CMake to locate.
          android )
target_link_libraries( 
                   ${log-lib}
                    ${android-lib})

如果您也有本机库,您可以像这样轻松添加

target_link_libraries( native-lib
                   ${log-lib}
                    ${android-lib})

它应该有效!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 AAssetManager_fromJava 的未定义引用 的相关文章

  • 如何在可以运行直到用户停止的服务中创建 FusedLocationProviderClient?

    我已经成功创建了一个活动融合位置提供者客户端返回特定时间段内的位置坐标 但我希望它在后台服务中运行 将坐标保存在本地数据库中 并且在用户手动停止服务之前永远不会结束 这是我的源代码 private String mLastUpdateTim
  • 在 Android 中录制、保存和播放视频

    我正在尝试制作一个使用相机应用程序录制视频的应用程序 然后将该视频保存在 SD 卡上 以便我可以播放它 我有一些代码 但我不知道如何继续 因为我是 Android 初学者 我的活动 public class Camcorder extend
  • GridView 的行中列宽不同

    我有一个 GridView 需要在其中显示图像 我应用了以下逻辑 If 1 Photo 1 row and 1 col and full width image If 2 Photos 1 row and 2 cols with equal
  • Android studio 不让我安装 Android SDK 平台

    一切都工作正常 直到我导入 Esclipse Lollipop 示例并出现以下错误 我在 Mac OS X 上遇到了完全相同的问题 以下是我修复它的方法 cd Library Android sdk tools android update
  • 无法绑定到调试器的本地 XXXX

    我不断得到Can t bind to local XXXX for debugger控制台中的消息 但不适用于 1 个端口 适用于所有随机端口 我已经完成了中所述的操作这个问题 https stackoverflow com questio
  • CollapsingToolbarLayout 无法识别滚动 fling

    我创建了一个简单的折叠工具栏布局它就像一个魅力 我的问题是 如果我尝试在嵌套滚动视图 当我松开手指时它就会停止 正常的滚动就像它应该的那样工作 我的活动代码是不变 gt 自动生成空活动 我只是单击了 android studio 中的 创建
  • Android - 缩放和压缩位图

    我正在开发一个 Android 应用程序 它具有相机捕捉和照片上传功能 如果设备具有高分辨率相机 则捕获的图像尺寸将非常大 1 3MB或更大 由于应用程序需要将此图像上传到服务器 因此我需要在上传之前压缩图像 例如 如果相机拍摄了 1920
  • 覆盖服务 - 按下返回按钮

    我怎样才能做到这一点 目前的解决方案 我启动了一个透明的活动 捕获后按 将其转发到我的服务 然后自行关闭 但此活动将在当前正在运行的活动中可见 因此这不是一个非常漂亮的解决方案 看到的解决方案 我见过一个应用程序确实可以捕获服务中的后按 而
  • Android 如何知道手电筒是否打开

    我正在使用 CameraManager 和 CameraCharacteristics 我想知道如何检查手电筒是否打开 试试这段代码 public boolean FlashStatus Camera Parameters paramete
  • 我的应用程序中的 google+ 集成

    我是 Android 开发新手 正在创建一个带有 Google 集成的 Android 应用程序 我看到了一个教程并开始遵循它 但自教程以来 Google 已经更新了 Google 集成 例如 在本教程中您曾经单击 获取配置文件 按钮htt
  • 从视频文件中提取音频的问题(android)

    我需要将 mp4 或任何其他视频格式 转换为 mp3 或 wav 文件 我正在使用 C Xamarin Forms 我使用的任何库要么不适合我 要么与 android 不兼容 我尝试过使用 Xamarin Android FFMpeg 和
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • 如何从内存中清除动态创建的视图?

    我试图从记忆中清除一些观点 情况是这样的 我有一个活动 我将其称为 A 另一个称为 B 现在 我在 Activity A 中按下一个按钮 该按钮调用 Activity B 动态创建大量视图 之后 我按后退按钮返回到活动 A 多次重复这两个步
  • SQLite CursorWindow 限制 - 如何避免崩溃

    我必须执行查询并将结果存储在列表中 我使用的函数如下 List
  • ImageView adjustViewBounds 不适用于相对布局

    我有一个ImageView并已设置其layout height为 100dp 其layout width为 wrap content 使用的绘图具有更大的实际尺寸 为 130dp 宽度 X 215dp 高度 当 的时候ImageView被放
  • 在 libgdx 中截取屏幕截图

    我有一个应用程序 我想在其中截取游戏屏幕的屏幕截图并将其保存为图像并上传到 Facebook 我正在使用 Libgdx 我的重点是 android 谁能帮助我如何以编程方式截取游戏屏幕并将其另存为图像 现在相当容易 Libgdx提供了一个例
  • 是否可以通过 MediaRecorder 或其他类获取当前样本幅度

    我有一个媒体录音机 想要从麦克风录制媒体并获取 它是幅度样本 我想尝试立即获得正确的当前幅度 当调用一些API时 但 MediaRecorde 中只有一个 API 用于获取幅度 getMaxAmplitude 用于获取最大绝对幅度 自上次调
  • 如何为Android编译最新的FFmpeg库?

    努力将当前 FFmpeg 的工作和一般最佳实践构建在一起 似乎没有最新的文档或教程 现有的内容充满了过时的链接或不起作用的构建脚本 构建独立的 NDK 工具链 下载最新的NDK并运行make standalone toolchain py
  • 将文本文件写入 SD 卡失败

    我遇到了一个奇怪的问题 我的应用程序可以将一个简单的文本文件写入 SD 卡 有时它对某些人有效 但对其他人无效 我不知道为什么 对于某些人来说 如果他们输入一些字符 例如 在文件等中 我似乎无法重现它 因为我没有遇到任何麻烦 但这是处理文件
  • 如何将 Three.js 代码实施到 Android 移动应用程序中?

    我用 HTML CSS 和 JS 编写了 Three js 场景的代码 显示 3D 头部模型及其上的标记 它适用于我的 Angular 项目 我还可以通过将 HTML 代码添加到 Web 视图中 使其在适用于 Android 和 iOS 的

随机推荐

  • 如何在 Selenium 中使用 CSS 选择器查找非根元素的直接后代?

    我正在尝试重用找到的 WebElement table 下面来搜索它的后代和直系后代 table tbody tr td div foo div td tr tr td td tr tbody table table
  • 在 Pandas UDF PySpark 中传递多列

    我想计算 PySpark DataFrame 两列之间的 Jaro Winkler 距离 Jaro Winkler 距离可通过所有节点上的 pyjarowinkler 包获得 pyjarowinkler 的工作原理如下 from pyjar
  • 为什么 Netbean 忽略 XML 配置中的 PHPUnit 测试套件?

    我已经将 netbean 设置为使用我的 config xml 文件 并且除了 netbean 完全忽略的 testsuites 部分之外 它运行良好 看起来 netbean 尝试执行此命令 phpunit c config xml 路径
  • 不使用 data-* 前缀的自定义 HTML 属性是否有效? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • globals()、locals() 和 vars() 之间有什么区别?

    有什么区别globals locals and vars 他们返回什么 结果的更新有用吗 其中每个都返回一个字典 globals always返回的字典module名称空间 locals always回报a字典的current名称空间 va
  • 如何使用 Mikolajczyk 的特征检测器/描述符评估框架?

    我正在尝试使用事实上的标准评估我的 SURF 描述符实现的正确性Mikolajczyk 等人的框架 阿尔 http www robots ox ac uk vgg research affine 我使用 OpenCV 来检测和描述 SURF
  • 将动态控件插入控件集合的中间

    这是我的第一篇文章 我非常绝望 所以我超越了我的标准谷歌搜索 我相信这是一个高级或专家级 NET 问题 问题是我已经构建了一个 NET Web 应用程序 它需要能够将用户控件动态插入到列表中间 我对动态控件非常满意 只要它们只需要添加到列表
  • 如何平铺视频/创建视频蒙太奇?

    我有四个视频 我想以 2x2 的方式平铺它们来制作一个新视频 有没有一种方法可以轻松地做到这一点 最好是免费的并且在 Linux 下 我愿意编写适量的程序 也许是为了与某些库交互 但不愿意自己编写整个视频处理程序 您可能会假设输入和输出视频
  • 我是否应该标准化我的数据库?

    在设计数据库 例如 MySQL 的模式时 会出现是否完全规范化表的问题 一方面 连接 以及外键约束等 非常慢 另一方面 您会获得冗余数据和潜在的不一致 最后优化 是正确的方法吗 即创建一个按书本规范化的数据库 然后查看可以对哪些内容进行非规
  • 有没有办法在 PHP 中进行 100% 面向对象的编程?

    我想 可以在单独的类中调用函数 我在 PHP 中称之为面向对象编程 但一开始总有一个index php什么的 它调用或者实例化另一个类 有没有办法让一个类像java那样进行自调用 public static void main String
  • 在java中缩放多页TIFF图像

    我想更改多页 TIFF 图像的高度 因此我使用下面的代码片段来缩放它 但它只返回 tiff 文件的第一页 我猜它会将其转换为 JPEG 图像 如何保留文件的所有页面 public static byte scale byte fileDat
  • NumPy:每 m 点选择 n 点

    如果我有一个numpy ndarray也就是说 大小为 300 个点 目前为 1 x 300 我想每 30 个点选择 10 个点 我该怎么做 换句话说 我想要前 10 个点 然后跳过 20 个 然后再抓取 10 个 然后跳过 10 个 直到
  • 装饰外部(库)函数的正确方法是什么?

    我在代码中多次使用库函数来测试通过 失败条件并相应地执行不同的代码 但由于某种原因 它找到的结果没有返回值 我想用装饰器添加它 以便我可以在代码中调用它 鉴于我无法编辑源文件 正确的方法是什么 我应该做这样的事情 def test pass
  • 如何在 Eclipse 中使用 MySql 数据库

    我对编程非常陌生 所以请耐心等待 如果一开始我没有理解的话 请提前道歉 我正在做一个本科编程项目 需要在 Java 程序中创建一些数据库 我正在使用 eclipse galilo 来编写我的程序 我已经下载了一个连接器 J 但还不知道应该如
  • PHPUnit 测试套件包含路径

    使用 phpunit 时 我在包含路径方面遇到了一些麻烦 不是针对 phpunit 本身 而是针对我的代码和测试目录 我有以下代码结构 Application StringCalculator php tests StringCalcula
  • 集合已修改;枚举操作可能无法执行 - 为什么?

    我正在枚举一个实现 IList 的集合 并且在枚举期间我正在修改该集合 我收到错误 集合已修改 枚举操作可能无法执行 我想知道为什么在迭代期间修改集合中的项目时会出现此错误 我已经将 foreach 循环转换为 for 循环 但我想知道发生
  • 如何使用 Spring Boot 注册辅助 servlet?

    我有一个额外的 servlet 需要在我的应用程序中注册 然而 使用 Spring Boot 及其 Java 配置 我不能只在web xml file 如何添加额外的 servlet 还可以使用的是ServletRegistrationBe
  • 获取模板参数的字符串表示形式

    我希望能够在模板类中创建一个方法 该方法返回模板参数中替换的类型的名称 eg template
  • 为什么我在运行 ngserve 命令时收到以下错误消息?

    运行 ngserve 命令时 我不断收到以下错误消息 我该如何解决这个问题 您似乎不依赖于 angular core 这是一个错误 别忘了跑步npm install设置后 应该可以做到这一点
  • 对 AAssetManager_fromJava 的未定义引用

    我正在尝试使用 AAssetManager 从 Android apk 访问资源 然而 我不断得到 未定义对 AAssetManager fromJava 的引用 即使我已包含 asset manager h 和 asset manager