UnsatisfiedLinkError:无法从加载程序加载 X

2023-12-19

我正在尝试使用本机代码创建一个 android 项目来调用 OpenGL 函数。

我正在按照本指南来启动该项目:http://www.learnopengles.com/calling-opengl-from-android-using-the-ndk/ http://www.learnopengles.com/calling-opengl-from-android-using-the-ndk/

根据本指南,我必须“右键单击 Package Explorer 中的项目,从下拉菜单中选择 Android Tools,然后选择 Add Native Support...”。但是,此选项在我的 eclipse 版本(来自与 sdk 捆绑的 android 站点的最新 osx 版本)中不可见。

为了解决这个问题,我使用以下命令手动将项目转换为 C/C++ 项目: 文件 -> 新建 -> 其他 -> 转换为 C/C++ 项目(添加 C/C++ 支持)。

然后,我将 PATH 变量添加到项目属性 -> C/C++ 构建 -> 环境下找到的环境变量中。我将 ndk 的路径添加到这个变量中。

此外,我制作了必要的 make 文件并生成了 jni 文件。 该项目确实编译并在 libs 目录中生成一个 .so 文件。 但是,当我尝试在设备上运行该项目时,出现以下运行时错误:

异常 java/lang/UnsatisfiedLinkError;初始化 nl/blaat/project_name/JNIWrapper 时抛出; java.lang.UnsatisfiedLinkError:无法从加载器 dalvik.system.PathClassLoader[dexPath=/data/app/nl.blaat.project_name 加载 GLCore。

当我在线搜索时,问题的通常答案是本机代码未编译,但就我而言,它可以编译。 NDK 提供的示例项目也存在同样的问题。

编辑:一些可能有助于识别问题的额外信息。

  • 该问题在 osx 和 windows 上都会出现。
  • 该问题出现在我的三星 Galaxy s2 和 s5 上,因此它可能不是特定于设备的。
  • SDK附带的示例也出现该问题。

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := OpenGLCore
LOCAL_CFLAGS    := -Wall -Wextra
LOCAL_SRC_FILES := OpenGLCore.c jni.c
LOCAL_LDLIBS := -lGLESv2

include $(BUILD_SHARED_LIBRARY)

应用程序.mk

APP_PLATFORM := android-10
APP_ABI := all

如果 NDK 中的示例项目给出相同的错误,您确定它是为正确的架构构建的吗?大多数 Android 设备都运行 ARM 处理器,但有些设备运行在 x86 和 mips 上,并且许多 NDK 示例默认情况下仅针对 ARM 构建。

要针对所有架构进行构建,请将“APP_ABI := all”添加到 jni/Application.mk。

另外,为了确保调整后的构建过程确实有效,请尝试首先在项目根目录中的终端中手动运行 ndk-build 来构建 .so,以获取 NDK 示例。 (此后您可能需要刷新 eclipse 中的文件夹结构,以确保找到并包含新构建的库。)

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

UnsatisfiedLinkError:无法从加载程序加载 X 的相关文章

  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 在分组依据查询中包含缺失的月份

    我想我这里有一个艰难的人 我试图按月获取订单数 即使为零 这是问题查询 SELECT datename month OrderDate as Month COUNT OrderNumber AS Orders FROM OrderTable
  • 方法引用与 lambda 表达式

    我想用下面示例中的方法引用替换 lambda 表达式 public class Example public static void main String args List
  • 使用 JavaScript 的逻辑运算符压缩 if/else if 语句

    我正在学习 AngularJS 试图制作一个简单的计算器 并且我正在尝试压缩它if else if 陈述使用 Javascript 逻辑运算符 鉴于这个例子 我怎样才能减少它呢 如果你不明白 scope 忽略它 它基本上是一个视图 因此 当
  • 在引导程序轮播中加载多个谷歌图表

    我创建了一个引导程序轮播来说明我们公司的数据 在这个轮播中 我有引导表 图片和两个谷歌图表 饼图和堆积条形图 如果我没有为谷歌图表保留活动类 它们将无法正确加载 有时图表大小会发生变化 有时图例不会显示 如果我使饼图处于活动状态 则它可以正
  • Clojure 中的自动 TCO

    有没有办法在 Clojure 中定义自动尾部调用优化的函数 e g defrecur fact x if x 1 1 x fact dec x 将在内部翻译为 defn fact x loop n x f 1 if n 1 f recur
  • HTML 服务提交表单不调用 google.script.run 函数

    我有一个脚本曾经工作得很好 但突然停止工作了 用户从用户创建的菜单中选择一个选项 该菜单将启动一个对话框 HTML 服务表单 来收集两个参数 这一切工作正常 当用户提交表单时 应执行此代码
  • Rails:相同两个模型之间的多个联接表

    我有两个模型 玩家和事件 它们之间有两个连接表 参与者和课程 class Event has many participants has many players through participants has many lessons
  • SSIS 包中 ReadUncommissed 隔离级别的解决方法

    SSIS 中的 ReadUncomfilled IsolationLevel 是 Microsoft 承认的一个错误 但 不会修复 如下所述 http connect microsoft com SQLServer feedback det
  • 使用extend.js有什么好处?

    我刚刚认识扩展 js https github com searls extend js 并且想知道使用该库是否比使用本机 JavaScript 具有附加价值 让我演示一下 With 扩展 js 我会声明一个命名空间 如下所示 extend
  • MySQL:永久设置 sql_mode

    通过 MySQL 命令行客户端 我尝试设置全局 mysql mode SET GLOBAL sql mode TRADITIONAL 这适用于当前会话 但在我重新启动服务器后 sql mode 将返回到其默认值 一个空字符串 如何将 sql
  • Codeigniter - 使用force_download函数下载文件

    我正在使用最新的 CI 我在当地工作时没有任何问题 但是当我将作品转移到实时服务器时 我遇到了问题 当我从下载选项卡下载文件时 文件将以正确的大小和格式下载 但是当我打开下载的文件时 例如 如果是图像 则图像不显示 或者如果是单词 则要求选
  • Java 不运行带参数的准备语句

    我正在使用PreparedStatement 来查询我的表 不幸的是 我没能做到这一点 我的代码很简单 PreparedStatement preparedStatement connection prepareStatement Sele
  • 我们可以在 Cubism 上使用自定义 JSON 数据吗?

    我看到了立体图 它们简直太神奇了 我有一个很大的 JSON 文件 其中包含 1000 个条目 其中包含时间戳和值 整数 Cubism 可以绘制这些图吗 我似乎找不到这方面的文档 Cubism 通常适用于实时数据 但您可以实现一个仅从 JSO
  • Swift:获取字典中键的数量

    对于快速数组 我们可以简单地使用count属性来找出集合中有多少个元素 然而 我们不能对字典键做同样的事情 执行此操作的唯一方法是使用 for 循环和计数器吗 var myDict String AnyObject intialize di
  • FFmpeg:如何将带有黑边的垂直视频转换为背景边模糊的 16:9 视频

    如何使用 FFmpeg 实现这一点 没有 FFmpeg 的示例 Adobe After Effects http www youtube com watch v yCOrqUA0ws4 索尼维加斯专业版 http www youtube c
  • Snakemake 和 pandas 语法

    我有一个输入文件如下 SampleName Run Read1 Read2 A run1 test true data 4k R1 fq test true data 4k R2 fq A run2 test samples A fastq
  • SQL Server 2012经典asp连接字符串

    我安装了 SQL Server 2012 Express 其中有一个名为BRD我创造的 我还创建了一个测试表 tempDemo 和一个测试存储过程 getStList 在里面BRD数据库 当我在查询窗口中运行存储过程时 它会起作用 因此我相
  • 移动设备上的视觉视口与布局视口

    我刚刚读了一篇关于视口的好文章 http www quirksmode org mobile viewports2 html这给我留下了一些关于移动设备上的视觉视口与布局视口的问题 布局视口的宽度和高度等于任何值 可以以最大缩小模式显示在屏
  • 在 Android 中制作自定义可绘制形状

    我想要像下面这样绘制 我可以在两个不同的 xml 文件中制作矩形和三角形 但我想联合它们来制作这样的可绘制对象 Use layer list制作这个自定义形状drawable res drawable custom shape xml
  • UnsatisfiedLinkError:无法从加载程序加载 X

    我正在尝试使用本机代码创建一个 android 项目来调用 OpenGL 函数 我正在按照本指南来启动该项目 http www learnopengles com calling opengl from android using the