Java MuPDF在Android应用程序中呈现空pdf文件

Java MuPDF在Android应用程序中呈现空pdf文件,java,android,pdf,layout,mupdf,Java,Android,Pdf,Layout,Mupdf,我试图使用MuPDF库在我的应用程序中打开pdf文件。我已经按照步骤将Mupdf与我的项目集成,它可以在我的应用程序上显示文件结构并让我选择pdf文件。但当我点击一个pdf文件时,它会打开一个空白屏幕。它不会抛出任何错误。我从Play market下载的MuPDF应用程序运行良好,可以正常呈现pdf文件 我遵循了此线程中的步骤: 我将此部分放在我的活动类文件中,希望它能将数据传输到屏幕: To open pdf with pre-fix file: Uri uri = Uri.pars

我试图使用MuPDF库在我的应用程序中打开pdf文件。我已经按照步骤将Mupdf与我的项目集成,它可以在我的应用程序上显示文件结构并让我选择pdf文件。但当我点击一个pdf文件时,它会打开一个空白屏幕。它不会抛出任何错误。我从Play market下载的MuPDF应用程序运行良好,可以正常呈现pdf文件

我遵循了此线程中的步骤:

我将此部分放在我的活动类文件中,希望它能将数据传输到屏幕:

To open pdf with pre-fix file:

    Uri uri = Uri.parse("path to pdf file");

    Intent intent = new Intent(context, MuPDFActivity.class);

    intent.setAction(Intent.ACTION_VIEW);

    intent.setData(uri);

    context.startActivity(intent);
有没有关于哪些地方可能出错或遗漏的建议? 我们将非常感谢您的任何意见

更新:我发现,正如评论中提到的,mupdf不是由任何类启动的。因此,我更改了代码以在choosePDFActivity.java中触发该类:

    @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    mPositions.put(mDirectory.getAbsolutePath(), getListView().getFirstVisiblePosition());

    if (position < (mParent == null ? 0 : 1)) {
        mDirectory = mParent;
        mHandler.post(mUpdateFiles);
        return;
    }

    position -= (mParent == null ? 0 : 1);

    if (position < mDirs.length) {
        mDirectory = mDirs[position];
        mHandler.post(mUpdateFiles);
        return;
    }

    position -= mDirs.length;

    Uri uri = Uri.parse(mFiles[position].getAbsolutePath());
    Intent intent = new Intent(this,MuPDFActivity.class);
    intent.setAction(Intent.ACTION_VIEW);
    intent.setData(uri);
    startActivity(intent);
}
@覆盖
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
super.onListItemClick(左、右、位置、id);
mPositions.put(mDirectory.getAbsolutePath(),getListView().getFirstVisiblePosition());
如果(位置<(mParent==null?0:1)){
mDirectory=mParent;
mHandler.post(mUpdateFiles);
返回;
}
位置-=(mParent==null?0:1);
if(位置<计量长度){
mDirectory=mDirs[位置];
mHandler.post(mUpdateFiles);
返回;
}
位置-=mDirs.长度;
Uri=Uri.parse(mFiles[position].getAbsolutePath());
意向意向=新意向(此,MuPDFActivity.class);
intent.setAction(intent.ACTION\u视图);
intent.setData(uri);
星触觉(意向);
}
现在它打开了Mupdf,但出现了一些错误:

06-12 10:31:51.875:W/dalvikvm(6551):异常Ljava/lang/unsatifiedlinkerror;初始化Ltys/app/test/MuPDFCore时抛出


现在,当我点击一个pdf文件时,它会弹出一个错误消息。这是有进展的。请帮忙

看起来您没有将MuPDF正确集成到项目中。MuPDF使用本机代码来完成其呈现,而该本机代码没有被正确包含-因此logcat中的
unsatifiedLinkError
。确保为正在测试的设备(ARM/ARMv7/x86等)包含正确的JNI二进制文件


另请参见

当您尝试查看PDF时,您是否可以在日志中看到任何问题?让我将日志粘贴到主要问题中……日志中没有关于MuPDFActivity的内容,因此它没有真正的帮助。您应该将日志添加到MuPDFActivity,或者使用断点和调试来检查它是否正在启动。如果是的话,那么你可以试着找出为什么它可以加载PDF。我发现MuPDF库使用起来很复杂,也许这可以帮助你@错综复杂是的,你是对的。我按照你的建议做了,发现了一些关于mupdfcore的错误。。。