-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
64-bit ARM and x86_64 - updating PR #121 #176
Conversation
I'll run some tests before merging. |
Thanks, @michalgr. :) There's definitely an issue in my original PR; if you try to use the GIF support you'll get runtime symbol lookup errors. I expect to dive into this and properly test it later today. |
This code produces the following stacktrace from issue #193:
|
I tested this PR on a Nexus 5 (Android 5.1) and the problem still happened:
|
+1 on this |
@@ -865,7 +865,7 @@ jint GifImage_nativeGetSizeInBytes(JNIEnv* pEnv, jobject thiz) { | |||
void GifImage_nativeDispose(JNIEnv* pEnv, jobject thiz) { | |||
pEnv->MonitorEnter(thiz); | |||
GifImageNativeContext* pNativeContext = | |||
(GifImageNativeContext*) pEnv->GetIntField(thiz, sGifImageFieldNativeContext); | |||
(GifImageNativeContext*) pEnv->GetLongField(thiz, sGifImageFieldNativeContext); | |||
if (pNativeContext != nullptr) { | |||
pEnv->SetIntField(thiz, sGifImageFieldNativeContext, 0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SetLongField
Sorry for keeping you waiting, we are still waiting for 64bit device. Fortunately the issue happens on all architectures, so I am able to repro this. There are some leftovers, new long fields are accessed as int fields. I was able to mark 4 of those places in the diff, but there are 8 more. To get all of them covered we would have to replace all occurrences of "I" (with double quotes) in webp.cpp and gif.cpp with "J" (this will tell JNI that we are looking for long fields rather than int fields), as well as "(I)V" in the same files with "(J)V" (this will tell JNI that the constructors we are looking for take long as the only argument. With those changes I am able to run this on non 64 bit device. |
Just wanted to add my +1 for this. Any update on the progress? |
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.yikaton.handyshop-1/base.apk"],nativeLibraryDirectories=[/data/app/com.yikaton.handyshop-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libimagepipeline.so" how to solve it? help~ |
my system is windows 64 bits |
You have to use the correct ABIs, see http://frescolib.org/docs/multiple-apks.html |
@JackPeel i have this problem too.Did you known how to fit it ????please tell me,thx |
Just finishing updating PR #121 @orospakr started, by updating the files that @michalgr suggested to use Java
long
instead ofint
to store the context id.