android找不到对应的jni函数

android cannot find corresponding jni function

我已关注 here 并将 .so 文件添加到我的 android 项目中。加载库和项目 运行s。

现在我想使用库的一个函数。我在 MainActivity:

中这样尝试过
public final static native int crypto_aead_chacha20poly1305_encrypt(byte[] jarg1, int[] jarg2, byte[] jarg3, int jarg4, byte[] jarg5, int jarg6, byte[] jarg7, byte[] jarg8, byte[] jarg9);

Android给我说他找不到对应的JNI函数。

so文件在右侧架构图中的jniLibs中。

他试图在我的包中而不是在 so 库中找到它,这与我的包名有关吗?

当我 运行 我得到:

java.lang.UnsatisfiedLinkError: No implementation found for int be.example.libtest.MainActivity.crypto_aead_chacha20poly1305_encrypt(byte[], int[], byte[], int, byte[], int, byte[], byte[], byte[]) (tried Java_be_example_libtest_MainActivity_crypto_1aead_1chacha20poly1305_1encrypt and Java_be_example_libtest_MainActivity_crypto_1aead_1chacha20poly1305_1encrypt___3B_3I_3BI_3BI_3B_3B_3B)

在项目的 libs 文件夹中创建名称为 "armeabi" 和 "armeabi-v7a" 的文件夹,并将“.so”文件放入这两个文件夹中,然后清理项目和 运行 .

我看到 Robosodium 使用 Swig 生成包装器。在这种情况下,src/main/java/org/abstractj/kalium 中还应该有一些自动生成的 Java 文件也需要添加到您的项目中。所有本机调用都应使用 类.

中提供的方法进行