请注意,这个问题是我之前在这里问过的another question的后续问题。
我想实现什么目标?
我想使用JNA(Android Studio为4.5.2版)实现以下目标:
到目前为止,我做了什么?
到目前为止,我的测试应用程序文件“ MainActivita.java”的代码如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String MyLibraryString = MyLibrary.Instance.toString();
}
public interface MyLibrary extends Library
{
MyLibrary Instance = (MyLibrary ) Native.loadLibrary("nameOfMyLibraryWithoutSoExtension", MyLibrary.class);
}
}
我要面对什么问题?
我曾经收到一条错误消息,指出我的Android设备上未找到我的库,但是将其放入“ jniLibs”子文件夹后,我的应用似乎可以检测到它。不幸的是,我现在收到错误消息
java.lang.UnsatisfiedLinkError:本机库 在资源中找不到(com / sun / jna / android-aarch64 / libjnidispatch.so) 路径(。)
每当我尝试在设备上启动应用程序时。我已经尝试从JNA.jar文件中提取文件“ libjnidispatch.so”,并将其放在各自的子文件夹中(如here所述),但这是行不通的。
我的应用程序的子文件夹“ app \ src \ main \ jniLibs”的文件夹结构如下:
app\src\main\jniLibs\arm64-v8a\myLibrary.so
...
app\src\main\jniLibs\arm64-v8a\libjnidispatch.so
app\src\main\jniLibs\armeabi\myLibrary.so
...
app\src\main\jniLibs\armeabi\libjnidispatch.so
app\src\main\jniLibs\armeabi-v7a\myLibrary.so
...
app\src\main\jniLibs\armeabi-v7a\libjnidispatch.so
app\src\main\jniLibs\mips\myLibrary.so
...
app\src\main\jniLibs\mips\libjnidispatch.so
app\src\main\jniLibs\mips64\myLibrary.so
...
app\src\main\jniLibs\mips64\libjnidispatch.so
app\src\main\jniLibs\x86\myLibrary.so
...
app\src\main\jniLibs\x86\libjnidispatch.so
app\src\main\jniLibs\x86_64\myLibrary.so
...
app\src\main\jniLibs\x86_64\libjnidispatch.so
任何帮助将不胜感激。