首先:我想在我的Android应用中查看pdf文件。 我用Google搜索并分析并决定使用mupdf 首先,我使用this guide来构建演示项目,它在eclipse中工作得很好。但我需要在Android工作室中运行它。我尝试从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:无法运行命令: 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 错误代码: 2 输出: make.exe: * 没有规则来制作目标
C:\mupdf\platform\android\app\build\ndk\debug\obj/local/armeabi-v7a/objs/mupdf/C_\mupdf\platform\android\app\src\main\jni', needed by
C:\ mupdf \ platform \ android \ app \ build \ ndk \ debug \ obj / local / armeabi-v7a / objs / mupdf /C_\mupdf\platform\android\app\src\main\jni\mupdf.o' ;.停止。
答案 0 :(得分:3)
您获得的错误似乎表明您的.so文件未正确集成到您的APK中。您可以通过解压缩APK并查看lib/armeabi-v7a
,lib/x86
等内容来检查
如果jni/
文件夹下只有一个.c或.cpp源文件,可能是导致此No rule to make target
错误的原因,则Windows上存在已知错误:https://code.google.com/p/android/issues/detail?id=66937 < / p>
如果您遇到Android Studio和NDK的其他问题,我已经发表了一篇文章,可以帮助您:http://ph0b.com/android-studio-gradle-and-ndk-integration/