【问题标题】:Unsatisfied Link Error: dlopen failed: cannot locate symbol "atof"? [duplicate]不满意的链接错误:dlopen 失败:找不到符号“atof”? [复制]
【发布时间】:2016-07-14 12:36:35
【问题描述】:

我正在尝试实现 mupdf 库以在我的应用程序中呈现 pdf 文档。我的应用程序崩溃并显示以下错误日志:-

java.lang.UnsatisfiedLinkError: dlopen failed: 找不到符号 “libmupdf_java.so”引用的“atof”... 在 java.lang.Runtime.loadLibrary(Runtime.java:364) 在 java.lang.System.loadLibrary(System.java:526) 在 com.artifex.mupdfdemo.MuPDFCore.(MuPDFCore.java:15) 在 com.inevitablesol.www.demopdf.MainActivity.onCreate(MainActivity.java:23) 在 android.app.Activity.performCreate(Activity.java:5301) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2291) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378) 在 android.app.ActivityThread.access$800(ActivityThread.java:155) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5433) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 在 dalvik.system.NativeStart.main(Native Method)

这是我正在尝试实现的示例代码。

package com.inevitablesol.www.demopdf;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RelativeLayout;

import com.artifex.mupdfdemo.FilePicker;
import com.artifex.mupdfdemo.MuPDFCore;
import com.artifex.mupdfdemo.MuPDFPageAdapter;
import com.artifex.mupdfdemo.MuPDFReaderView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RelativeLayout layout = (RelativeLayout) findViewById(R.id.main_layout);

        MuPDFCore core = null;
        try {
            core = new MuPDFCore(this,"/storage/emulated/0/sample.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
        MuPDFReaderView reader = new MuPDFReaderView(this);
        reader.setAdapter(new MuPDFPageAdapter(this, new FilePicker.FilePickerSupport() {
            @Override
            public void performPickFor(FilePicker filePicker) {

            }
        },core));

        layout.addView(reader);
    }
}

【问题讨论】:

  • 你添加了.so文件吗?
  • @Pravin 我首先从源代码构建 mupdf 库,然后创建了一个名为 com.artifex.mupdfdemo 的项目,然后创建了一个 .arr 文件并将其用作我项目中的模块。
  • ok.. 在下载的 mupdf 项目中搜索 libmupdf.so 文件并将该文件添加到您的项目中
  • @Pravin 错误信息清楚地表明 .so 文件已经存在于项目中;由于它的编译方式,问题是加载它。

标签: java android android-ndk mupdf atof


【解决方案1】:

在此位置 /app/src/main/ 创建 jniLibs 文件夹。 并在 jnoLibs 文件夹中创建 armeabiarmeabi-v7a 文件夹并在该文件夹中添加 libmupdf.so 文件。

【讨论】:

  • 谢谢 Pravin 我创建了一个名为 jniLibs 的目录并添加了两个文件夹 armeabi 和 armeabi-v7a 并在两个文件夹中添加了 libmupdf_java.so。我仍然遇到同样的错误。
猜你喜欢
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多