Android NDK,并将功能放在 Activity 类之外

标签 android c++ android-ndk jnienv

文中提到: http://androidcookbook.com/Recipe.seam?recipeId=77

是:

"在 Activity 类中,在任何方法之外:

static {
    System.loadLibrary("sqrt-demo");
}
// In a method of the Activity class where you need to use it:
double d = SqrtDemo.sqrtC(123456789.0);

如果设计师想将所有 NDK 操作(加载库、定义函数)放在 Activity 之外,她/他可以吗?
我试图通过创建一个新类并将其导入到 Activity 中来解决这个问题。我将加载库放在类构造函数中,并将方法定义放在另一个类中。 Activity 出现加载库但会崩溃,错误是找不到函数

编辑以添加详细信息: 我再次尝试此操作,但将 loadLibrary 函数放回 Activity 中。我得到相同的崩溃报告: java.lang.UnsatisfiedLinkError: 找不到 native 方法:

最佳答案

看来我已经找到了问题所在,这是我的一个疏忽。 您可以从导入的类中加载库,并且可以将方法定义放在导入的类中。但是,您必须这样修改函数: 初始 header :JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_MainAcitivty_helloWorld(){

JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_newclass_helloWorld(){

关于Android NDK,并将功能放在 Activity 类之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29305939/

相关文章:

android - VPN 的连接性没有变化?

java - 如何在加载新的android fragment 时显示进度条?

android - 为 Android NDK 构建 FFMpeg 给了我 .a 而不是 .so 文件

android - 在 100% C++ 环境中为 Android 编程?

android - 需要帮助配置 ffmpeg 以使用 android ndk 解码原始 AAC

android - ImageButton 提升问题

java - 如何在 Android 中设计自定义通用线程类(发送和接收数据)

c++ - 有什么方法可以避免在 C++ 构造函数体中赋值?

c++ - 我应该将我的对象声明为全局的还是静态的?

c++ - 如何在不使用 IDE 的情况下从 cpp 文件自动生成/更新头文件?