java.lang.UnsatisfiedLinkError: Native method not found: pdftron.PDF.PDFNet.setPersistentCachePath

Hello,

on some devices we got a crash:

Asus

Did you face such exception? How can we fix it?
Thanks.

We use standard version 6.5.3 with abi split.

пʼятниця, 22 квітня 2016 р. 21:11:11 UTC+3 користувач Mysochenko Yuriy написав:

Hello,

on some devices we got a crash:

java.lang.UnsatisfiedLinkError: Native method not found: pdftron.PDF.PDFNet.setPersistentCachePath:(Ljava/lang/String;)V
at pdftron.PDF.PDFNet.setPersistentCachePath(Native Method)
at pdftron.PDF.PDFNet.initialize(SourceFile:205)
at com.package.MyApplication.initPdfRendering(MyApplication.java:69)
at com.package.MyApplication.onCreate(MyApplication.java:43)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4517)
at android.app.ActivityThread.access$1500(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1313)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5190)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)

Manufacturer
: Asus
Android version
: Android 4.4
RAM (MB)
: 2014
Screen size
: 2560 × 1600
Screen density (dpi)
: 320
OpenGL ES version
: 2.0
Native platform
: armeabi-v7a
CPU make:
NVidia
CPU model
: Tegra 4
Did you face such exception? How can we fix it?
Thanks.

There was a bug in an older Android APK, where it was not loading the correct native library in some case. As a workaround for this APK bug we had to rename our armv7 library to libPDFNetC-v7a.so.

Therefore, all our native libs are called libPDFNetC.so, regardless of architecture, except for armv7, which is called libPDFNetC-v7a.so.

You can see this by looking in the /lib/[full|standard]/armeabi-v7a folder.

Most likely your project (gradle) is configured to always load libPDFNetC.so and therefore on this ASUS device the wrong architecture is being loaded.

Please take a closer look at the gradle files provided with the CompleteReader or PDFViewCtrl sample projects on how to handle this special case.