xerial / snappy-java

Snappy compressor/decompressor for Java
Apache License 2.0
1.03k stars 232 forks source link

1.1.7.1 can not work on android #212

Closed atszgoogle closed 4 years ago

atszgoogle commented 6 years ago

Hi,guys I use 1.1.7.1 on android,but it does not work。 FYI,this is the log:

FATAL EXCEPTION: main Process: org.semux, PID: 4419 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/xerial/snappy/Snappy; at org.semux.MainActivity.onCreate(MainActivity.java:17) at android.app.Activity.performCreate(Activity.java:6975) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: java.lang.ClassNotFoundException: Didn't find class "org.xerial.snappy.Snappy" on path: DexPathList[[zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/base.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_dependencies_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_0_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_1_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_2_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_3_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_4_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_5_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_6_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_7_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_8_apk.apk", zip file "/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/lib/x86, /system/lib, /vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at org.semux.MainActivity.onCreate(MainActivity.java:17)  at android.app.Activity.performCreate(Activity.java:6975)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)  at android.os.Handler.dispatchMessage(Handler.java:105)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6541)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)  Suppressed: java.io.IOException: Failed to open dex files from /data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_dependencies_apk.apk because: Failure to verify dex file '/data/app/org.semux-t5tVSKRT6XX-XR_Mes6ifQ==/split_lib_dependencies_apk.apk': Bad method handle type 7 at dalvik.system.DexFile.openDexFileNative(Native Method) at dalvik.system.DexFile.openDexFile(DexFile.java:353) at dalvik.system.DexFile.(DexFile.java:100) at dalvik.system.DexFile.(DexFile.java:74) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374) at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) at dalvik.system.DexPathList.(DexPathList.java:157) at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:65) at dalvik.system.PathClassLoader.(PathClassLoader.java:64) at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:676) at android.app.LoadedApk.getClassLoader(LoadedApk.java:709) at android.app.LoadedApk.getResources(LoadedApk.java:936) at android.app.ContextImpl.createAppContext(ContextImpl.java:2242) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5672) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)

wakeee commented 6 years ago

+1

I get logs on android 8.1

org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native library is found for os.name=Linux and os.arch=android-arm
                                                       at org.xerial.snappy.SnappyLoader.findNativeLibrary(SnappyLoader.java:342)
                                                       at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:176)
                                                       at org.xerial.snappy.SnappyLoader.loadSnappyApi(SnappyLoader.java:154)
                                                       at org.xerial.snappy.Snappy.<clinit>(Snappy.java:47)
                                                       at org.xerial.snappy.Snappy.compress(Snappy.java:101)
                                                       at com.huawei.hiai.vision.mobilextest.MainActivity.compress_snappy(MainActivity.java:77)
                                                       at com.huawei.hiai.vision.mobilextest.MainActivity.onCreate(MainActivity.java:40)
                                                       at android.app.Activity.performCreate(Activity.java:7354)
                                                       at android.app.Activity.performCreate(Activity.java:7345)
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1219)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3110)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3268)
                                                       at android.app.ActivityThread.-wrap12(Unknown Source:0)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)
                                                       at android.os.Handler.dispatchMessage(Handler.java:109)
                                                       at android.os.Looper.loop(Looper.java:218)
                                                       at android.app.ActivityThread.main(ActivityThread.java:7384)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)
xerial commented 6 years ago

@likaigithub I don't have much experience on using Android, so it would be difficult for me to reproduce this issue in my side. From your error log, it seems the native library compiled for Android doesn't work on your platform.

It would be great if you can tell me how to set up VM of Android, especially on Mac.

xerial commented 4 years ago

Duplicate of #174