android - 导出 mupdf 和 android studio 0.5.4

标签 android android-ndk android-studio mupdf

首先:我想在我的 android 应用程序中查看 pdf 文件。 我用谷歌搜索和分析并决定使用 mupdf 一开始我使用 this guide构建演示项目,它在 Eclipse 中运行良好。但我需要在 Android Studio 中运行它。我尝试从 eclipse 导出为 gradle 项目并导入到 Android Studio。文件资源管理器工作,但当我打开 pdf 时出现错误:

 java.lang.ExceptionInInitializerError
        at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:213)
        at com.artifex.mupdfdemo.MuPDFActivity.onCreate(MuPDFActivity.java:309)
        at android.app.Activity.performCreate(Activity.java:5008)
 ...
 Caused by: java.lang.UnsatisfiedLinkError: Couldn't load mupdf: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:365)
        at java.lang.System.loadLibrary(System.java:535)
        at com.artifex.mupdfdemo.MuPDFCore.<clinit>(MuPDFCore.java:14)
        at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:213)
        at com.artifex.mupdfdemo.MuPDFActivity.onCreate(MuPDFActivity.java:309)

我尝试只导入项目而不在 Eclipse 中转换它,但是当我运行应用程序时,出现错误:

Error:Execution failed for task ':app:compileDebugNdk'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\SpeedBoots\android-ndk-r9d\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\mupdf\platform\android\app\build\ndk\debug\Android.mk APP_PLATFORM=android-19 NDK_OUT=C:\mupdf\platform\android\app\build\ndk\debug\obj NDK_LIBS_OUT=C:\mupdf\platform\android\app\build\ndk\debug\lib APP_ABI=all Error Code: 2 Output: make.exe: * No rule to make target C:\mupdf\platform\android\app\build\ndk\debug\obj/local/armeabi-v7a/objs/mupdf/C_\mupdf\platform\android\app\src\main\jni', needed byC:\mupdf\platform\android\app\build\ndk\debug\obj/local/armeabi-v7a/objs/mupdf/C_\mupdf\platform\android\app\src\main\jni\mupdf.o'. Stop.

  1. 如何将 mupdf 库添加到 Android Studio 和我的项目中?我将不胜感激任何链接,例子。任何可以帮助的。
  2. 如何将带有原生代码的项目导入到 Android Studio?我绝对是 NDK 的菜鸟,害怕我需要阅读大量的教程和书籍来导入项目。

最佳答案

您收到的错误似乎表明您的 .so 文件没有正确集成到您的 APK 中。您可以通过解压缩 APK 并查看 lib/armeabi-v7alib/x86

来检查这一点

如果jni/文件夹下只有一个.c或.cpp源文件,那可能是这个No rule to make target错误的原因,有Windows 上的已知错误:https://code.google.com/p/android/issues/detail?id=66937

如果您在使用 Android Studio 和 NDK 时遇到其他问题,我在这里发表了一篇文章可能会对您有所帮助:http://ph0b.com/android-studio-gradle-and-ndk-integration/

关于android - 导出 mupdf 和 android studio 0.5.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042102/

相关文章:

android - DynamoDB - 请求中包含的安全 token 已过期

java - 如何在 Android 中显示 "Loading"状态?

android - 是否可以像我看到它安装 SD 卡一样从 adb shell 查看应用程序数据?

java - Android NDK : No JNI_OnLoad found in . ..跳过 init :但是有 JNI_OnLoad

c++ - Android NDK 与 Gradle 中的 OpenCV 原生集成

android - 如何解决 "section type conflict"编译错误以及将 section 属性与 gcc 结合使用的最佳实践

android - Eclipse - Android 10 SDK 与 Mac OSX 不兼容

android - Espresso 测试不更新

android - pdfbox android studio 中的 NoClassDefFoundError

android - 在 Android 项目中使用 Gradle 解决依赖项时出错