Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please add x86_64 version of vudroid.so #169

Open
montreux opened this issue Dec 6, 2015 · 6 comments
Open

Please add x86_64 version of vudroid.so #169

montreux opened this issue Dec 6, 2015 · 6 comments

Comments

@montreux
Copy link

montreux commented Dec 6, 2015

The absence of this version of the library can cause crashes on x86_64 android devices with java.lang.UnsatisfiedLinkError. I encountered this crash on a HUDL 2.

@lanceschi
Copy link

@JoanZapata, @montreux I just encountered the above mentioned issue with the emulator running the x86_64 system image and API level 23.

03-18 15:53:20.270 23415-23495/com.foobar.fooapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
                                                                               Process: com.foobar.fooapp, PID: 23415
                                                                               java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                                   at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                                                   at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                                   at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                                   at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                                   at java.lang.Thread.run(Thread.java:818)
                                                                                Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.foobar.fooapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.foobar.fooapp-1/lib/x86_64, /data/app/com.foobar.fooapp-1/base.apk!/lib/x86_64, /vendor/lib64, /system/lib64]]] couldn't find "libvudroid.so"
                                                                                   at java.lang.Runtime.loadLibrary(Runtime.java:367)
                                                                                   at java.lang.System.loadLibrary(System.java:1076)
                                                                                   at org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13)
                                                                                   at org.vudroid.pdfdroid.codec.PdfContext.<clinit>(PdfContext.java:13)
                                                                                   at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50)
                                                                                   at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:31)
                                                                                   at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                                   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                                                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                                                   at java.lang.Thread.run(Thread.java:818)

It seems the app can't find the appropriate libvudroid.so for the x86_64.

... /lib/x86_64, /vendor/lib64, /system/lib64]]] couldn't find "libvudroid.so" ...

Everything is working fine with a real smartphone running on ARM architecture. I checked the folder:

APP_FOLDER/build/intermediates/exploded-arr/com.joanzapata.pdfview/android-pdfview/1.0.4/jni

and here's the libraries list for the supported architectures:

  • arm64_v8a
  • armeabi
  • armeabi-v7a
  • mips
  • x86

Any advice/workaround would be appreciated. Thanks 👍

@lanceschi
Copy link

I created a new folder x86_64 in the lib folder:

APP_FOLDER/build/intermediates/exploded-arr/com.joanzapata.pdfview/android-pdfview/1.0.4/jni

and I put the x86 libvudroid.so. I compiled and run the app and here's the new error log:

03-18 16:11:13.420 23592-23749/com.foobar.fooapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
                                                                              Process: com.foobar.fooapp, PID: 23592
                                                                              java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                                  at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                                                  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                                  at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                                  at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                                  at java.lang.Thread.run(Thread.java:818)
                                                                               Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.foobar.fooapp-2/lib/x86_64/libvudroid.so" is 32-bit instead of 64-bit
                                                                                  at java.lang.Runtime.loadLibrary(Runtime.java:372)
                                                                                  at java.lang.System.loadLibrary(System.java:1076)
                                                                                  at org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13)
                                                                                  at org.vudroid.pdfdroid.codec.PdfContext.<clinit>(PdfContext.java:13)
                                                                                  at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50)
                                                                                  at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:31)
                                                                                  at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                                  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                                                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                                                  at java.lang.Thread.run(Thread.java:818) 

Pretty close:

"/data/app/com.foobar.fooapp-2/lib/x86_64/libvudroid.so" is 32-bit instead of 64-bit

All I need now is the x86_64 lib version.

Any advice on where to find the x86_64 lib version and/or how to compile source?

Thanks.

@montreux
Copy link
Author

I tried that too without success. The hack that worked for me was deleting the x86-64 libraries for the other dependencies. Then it successfully fell back to the 32 bit versions.

I'm afraid I don't know where to find a x86-64 version of libvudroid.so

John

On 18 Mar 2016, at 15:18, Luca Anceschi notifications@github.com wrote:

I created a new folder x86_64 in the lib folder:

APP_FOLDER/build/intermediates/exploded-arr/com.joanzapata.pdfview/android-pdfview/1.0.4/jni
and I put the x86 libvudroid.so. I compiled and run the app and here's the new error log:

03-18 16:11:13.420 23592-23749/com.foobar.fooapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.foobar.fooapp, PID: 23592
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.foobar.fooapp-2/lib/x86_64/libvudroid.so" is 32-bit instead of 64-bit
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13)
at org.vudroid.pdfdroid.codec.PdfContext.(PdfContext.java:13)
at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50)
at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:31)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)

Pretty close:

"/data/app/com.foobar.fooapp-2/lib/x86_64/libvudroid.so" is 32-bit instead of 64-bit
All I need now is the x86_64 lib version.

Any advice on where to find the x86_64 lib version?

Thanks.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@lanceschi
Copy link

@montreux I just gave a try to your approach although the result was sadly unsuccessful.

Thanks for the reply.

@Sunycha
Copy link

Sunycha commented Mar 21, 2016

sorry, I did not encounter this problem, If I met and have a solution or way of thinking, I'll tell you in time

sunyuechao321@126.com

From: Luca Anceschi
Date: 2016-03-18 23:10
To: JoanZapata/android-pdfview
Subject: Re: [android-pdfview] Please add x86_64 version of vudroid.so (#169)
@montreux I just encountered the above mentioned issue with the emulator running the x86_64 system image and API level 23.
03-18 15:53:20.270 23415-23495/com.foobar.fooapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.foobar.fooapp, PID: 23415
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.foobar.fooapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.foobar.fooapp-1/lib/x86_64, /data/app/com.foobar.fooapp-1/base.apk!/lib/x86_64, /vendor/lib64, /system/lib64]]] couldn't find "libvudroid.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13)
at org.vudroid.pdfdroid.codec.PdfContext.(PdfContext.java:13)
at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50)
at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:31)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)

It seems the app can't find the appropriate libvudroid.so for the x86_64.
... /lib/x86_64, /vendor/lib64, /system/lib64]]] couldn't find "libvudroid.so" ...

Everything is working fine with a real smartphone running on ARM architecture. I checked the folder:
APP_FOLDER/build/intermediates/exploded-arr/com.joanzapata.pdfview/android-pdfview/1.0.4/jni

and here's the libraries list for the supported architectures:
arm64_v8a
armeabi
armeabi-v7a
mips
x86
Any advice/workaround would be appreciated. Thanks

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

@lanceschi
Copy link

@montreux, @Sunycha

I downloaded vudroid source and compiled libraries for x86_64 and mips64 architectures. The source was compiled with Android NDK Revision 11b (March 2016) for Linux 64-bit (x86).

Here you'll find the files and the pull request: #191

Cheers, Luca

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants