2014-04-13 73 views
4

第一:我想在我的android應用程序中查看pdf文件。 我GOOGLE和分析,並決定使用mupdf 首先,我使用this guide構建演示項目,它在日食中工作正常。但我需要在Android Studio中運行它。我嘗試從eclipse導出爲Gradle項目並導入到Android Studio。文件瀏覽器的工作,但是當我打開PDF格式,我得到錯誤:export mupdf和android studio 0.5.4

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 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'. Stop.

  1. 如何將mupdf庫添加到Android Studio以及我的項目中?我會欣賞任何鏈接,例子。任何可能的幫助。
  2. 如何使用本機代碼將項目導入到Android Studio?我是NDK的絕對新手,並且害怕我需要閱讀大量的教程和書籍才能進入項目。
+0

我出口項目從Eclipse作爲gradle這個項目,併成功運行在Android工作室。當我將這個項目作爲模塊添加到我的通用應用程序中時出現的新問題無法從加載程序dalvik.system.PathClassLoader加載mupdf [DexPathList [[zip文件「/data/app/quentin.math.ege-1.apk 「],nativeLibraryDirectories = [/ data/app-lib/quentin.math.ege-1,/ vendor/lib,/ system/lib]]:findLibrary返回null錯誤:( – IlyaEremin

回答

3

您收到的錯誤似乎表明您的.so文件沒有正確地集成到APK中。您可以通過解壓縮您的APK,尋找裏面lib/armeabi-v7alib/x86

如果只有一個.c和的.cpp源文件jni/文件夾下,這可能是這個No rule to make target錯誤的原因,已知的bug檢查在Windows上:https://code.google.com/p/android/issues/detail?id=66937

如果您在使用Android Studio和NDK等煩惱,我做了一篇文章,可以幫助你在這裏:http://ph0b.com/android-studio-gradle-and-ndk-integration/

+1

你是對的,我的apk沒有。所以文件。問題出現在項目結構中。我將我的.so文件從libs移動到src/main/jniLibs,它的工作! – IlyaEremin