chaossss / ShapableLoadingView

A highly configurable and customized library to do loading progress with any animated shape u want
39 stars 12 forks source link

VerifyError exception #1

Open Trowa opened 7 years ago

Trowa commented 7 years ago

Hello,

I'm using your great library and I found a strange issue. It's seems that some of my users encounter an VerifyError, only on SM-A9000 with android 5.0.2 and SM-A710F with android 6.0.1. Do you have any idea of the cause ?

Here a stack trace : java.lang.VerifyError: Verifier rejected class com.github.chaossss.shapableloadingview.animator.ShapePathAnimator due to bad method void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.(android.graphics.Path, int) (declaration of 'com.github.chaossss.shapableloadingview.animator.ShapePathAnimator' appears in /data/app/my.application/base.apk) at com.github.chaossss.shapableloadingview.ShapableLoadingView.initShapePathAnimator(SourceFile:124) at com.github.chaossss.shapableloadingview.ShapableLoadingView.onSizeChanged(SourceFile:106) at android.view.View.sizeChange(View.java) at android.view.View.setFrame(View.java) at android.view.View.layout(View.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutVertical(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutVertical(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutVertical(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.FrameLayout.layoutChildren(FrameLayout.java) at android.widget.FrameLayout.onLayout(FrameLayout.java) at android.widget.ScrollView.onLayout(ScrollView.java:2288) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.RelativeLayout.onLayout(RelativeLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.FrameLayout.layoutChildren(FrameLayout.java) at android.widget.FrameLayout.onLayout(FrameLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.FrameLayout.layoutChildren(FrameLayout.java) at android.widget.FrameLayout.onLayout(FrameLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutVertical(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.FrameLayout.layoutChildren(FrameLayout.java) at android.widget.FrameLayout.onLayout(FrameLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutVertical(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.LinearLayout.setChildFrame(LinearLayout.java) at android.widget.LinearLayout.layoutVertical(LinearLayout.java) at android.widget.LinearLayout.onLayout(LinearLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.widget.FrameLayout.layoutChildren(FrameLayout.java) at android.widget.FrameLayout.onLayout(FrameLayout.java) at android.view.View.layout(View.java) at android.view.ViewGroup.layout(ViewGroup.java) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java) at android.view.Choreographer$CallbackRecord.run(Choreographer.java) at android.view.Choreographer.doCallbacks(Choreographer.java) at android.view.Choreographer.doFrame(Choreographer.java) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java) at android.os.Handler.handleCallback(Handler.java) at android.os.Handler.dispatchMessage(Handler.java) at com.osama.firecrasher.FireLooper.run(SourceFile:77) at android.os.Handler.handleCallback(Handler.java) at android.os.Handler.dispatchMessage(Handler.java) at android.os.Looper.loop(Looper.java) at android.app.ActivityThread.main(ActivityThread.java) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)

Thanks for your great library, Regards

chaossss commented 7 years ago

onSizeChanged->initShapePathAnimator->start(), after initializing ShapePathAnimator, start() method(ShapableLoadingView) will start the animation, and it will trigger the method - private float[] getPathCoordinates(Path path, float fraction) to be invoked.

Your log infos show that:

com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.(android.graphics.Path, int)

Apparently, params don't match. In my declaration, the param is float, and your log shows it int.

getPathCoordinates method is used to get a certain point in the path. For example, we get a point moving around a circle. PathMeasure turn the circle into a line, and wherever the point(the moving one) goes, we can get its position by the "line" PathMeasure provided.

Trowa commented 7 years ago

Hi,

I didn't do anything special with the library, I just put a ShapableLoadingView in a ViewStub with this xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/spinnerLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:layout_gravity="center"
    android:gravity="center">

    <!-- https://github.com/chaossss/ShapableLoadingView/blob/master/README_ENGLISH.md -->
    <com.github.chaossss.shapableloadingview.ShapableLoadingView
        android:layout_margin="30dp"
        android:layout_width="80dp"
        android:layout_height="80dp"
        app:numbers="2"
        app:rotate_cycle_time="50"
        app:enable_rotate_animation="true"
        app:enable_size_animation="true"
        app:path_type="square"
        app:shape_type="ball"
        app:size_cycle_time="800"
        app:min_shape_size="5dp"
        app:max_shape_size="12dp"
        app:shape_colors="@array/ball_colors" />

</LinearLayout>

I already encounter this kind of bug a long time ago, specific to few phone on few android version, due to a bad implementation of some method by manufacturers. Is it possible that this issue come from the same problem ? A bad implementation of android animation on the both phone with the issue ?

Regards

chaossss commented 7 years ago

Are you using ProGuard or retrolambda or something that could be mucking up your bytecode?

Or could u provide the whole log(adb logcat) while this kind of bug occur?

chaossss commented 7 years ago

You could try import this library into your project directly(copy the code), or not import it by adding dependency. If the bug don't occur again, it means my library's dependency might lead some contradiction in specific phone or android version.

Trowa commented 7 years ago

I'm using proguard, with this : -dontwarn com.github.chaossss.shapableloadingview.** Perhaps have I do add a keepclass too.

Here the logcat I have, I can't reproduce the bug because I don't have the phones with the issue, I only have logs from my user through ACRA :

--------- beginning of main
11-19 11:37:22.206  D   AssetManager    20770   addAssetPath path =/data/app/com.my.app-1/base.apk, mapOffset =0
11-19 11:37:22.206  D   AssetManager    20770   addAssetPath path =/data/app/com.my.app-1/base.apk,elasticAppCookieOffset ={3=0}
11-19 11:37:22.216  I   LoadedApk   20770   getClassLoader :null
11-19 11:37:22.216  I   InjectionManager    20770   Inside getClassLibPath caller 
11-19 11:37:22.216  I   LoadedApk   20770   classLibPath :, mActivityThread.mCoreFeatureClassLoader :null
11-19 11:37:22.387  I   MultiDex    20770   VM with version 2.1.0 has multidex support
11-19 11:37:22.387  I   MultiDex    20770   install
11-19 11:37:22.387  I   MultiDex    20770   VM has multidex support, MultiDex support library is disabled.
11-19 11:37:22.437  I   ACRA        20770   ACRA is enabled for com.my.app, initializing...
11-19 11:37:22.457  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:22.517  I   FirebaseInitProvider    20770   FirebaseApp initialization unsuccessful
11-19 11:37:23.738  D   InjectionManager    20770   InjectionManager
11-19 11:37:23.738  D   InjectionManager    20770   fillFeatureStoreMap com.my.app
11-19 11:37:23.738  I   InjectionManager    20770   Constructor com.my.app, Feature store :{}
11-19 11:37:23.738  I   InjectionManager    20770   featureStore :{}
11-19 11:37:23.738  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.808  V   MediaPlayer 20770   decode(31, 10230964, 5795)
11-19 11:37:23.898  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.898  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.898  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.898  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.908  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.908  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.928  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.948  D   PhoneWindow 20770   *FMB* installDecor mIsFloating : false
11-19 11:37:23.948  D   PhoneWindow 20770   *FMB* installDecor flags : -2139029248
11-19 11:37:23.948  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.948  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.948  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.948  D   Activity    20770   performCreate Call Injection manager
11-19 11:37:23.958  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.958  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.968  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.998  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.998  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.998  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:23.998  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:24.028  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:24.038  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:24.098  W   Settings    20770   Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
11-19 11:37:24.108  I   InjectionManager    20770   dispatchOnViewCreated > Target : com.my.app.VisitorActivity_ isFragment :false
11-19 11:37:24.128  D   OpenGLRenderer  20770   Render dirty regions requested: true
11-19 11:37:24.138  D   PhoneWindow 20770   *FMB* isFloatingMenuEnabled mFloatingMenuBtn : null
11-19 11:37:24.138  D   PhoneWindow 20770   *FMB* isFloatingMenuEnabled return false
--------- beginning of system
11-19 11:37:24.138  D   MultiPhoneWindow    20770   performUpdateVisibility, same visibility false
11-19 11:37:24.138  D   MultiPhoneWindow    20770   MinimizeAnimator::removeWindow
11-19 11:37:24.148  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/journal.tmp
11-19 11:37:24.158  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/3b7c55798deadab5e55671ea1dc8104a.0
11-19 11:37:24.158  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/3b7c55798deadab5e55671ea1dc8104a.0.tmp
11-19 11:37:24.158  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/3b7c55798deadab5e55671ea1dc8104a.1
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/3b7c55798deadab5e55671ea1dc8104a.1.tmp
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/e0ef5f23835066c403a8ba0adf9a8b76.0
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/e0ef5f23835066c403a8ba0adf9a8b76.0.tmp
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/e0ef5f23835066c403a8ba0adf9a8b76.1
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/e0ef5f23835066c403a8ba0adf9a8b76.1.tmp
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/f0f9f658898c8c6577a6b4fdc2c20fd3.0
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/f0f9f658898c8c6577a6b4fdc2c20fd3.0.tmp
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/f0f9f658898c8c6577a6b4fdc2c20fd3.1
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/f0f9f658898c8c6577a6b4fdc2c20fd3.1.tmp
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/627f900f70e0d8677acd8dc7e84226ee.0
11-19 11:37:24.168  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/627f900f70e0d8677acd8dc7e84226ee.0.tmp
11-19 11:37:24.178  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/627f900f70e0d8677acd8dc7e84226ee.1
11-19 11:37:24.178  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/627f900f70e0d8677acd8dc7e84226ee.1.tmp
11-19 11:37:24.178  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/c45911f9b5b8983ebd8c09d6dba6cf3a.0
11-19 11:37:24.178  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/c45911f9b5b8983ebd8c09d6dba6cf3a.0.tmp
11-19 11:37:24.178  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/c45911f9b5b8983ebd8c09d6dba6cf3a.1
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/c45911f9b5b8983ebd8c09d6dba6cf3a.1.tmp
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/07d05d911f15fca4fa014843b738fff1.0
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/07d05d911f15fca4fa014843b738fff1.0.tmp
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/07d05d911f15fca4fa014843b738fff1.1
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/07d05d911f15fca4fa014843b738fff1.1.tmp
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/a8569413d801b240f925c7360d2b25cf.0
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/a8569413d801b240f925c7360d2b25cf.0.tmp
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/a8569413d801b240f925c7360d2b25cf.1
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/a8569413d801b240f925c7360d2b25cf.1.tmp
11-19 11:37:24.188  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/026ab47c1b84927a39b76c65b73a6732.0
11-19 11:37:24.198  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/026ab47c1b84927a39b76c65b73a6732.0.tmp
11-19 11:37:24.198  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/026ab47c1b84927a39b76c65b73a6732.1
11-19 11:37:24.198  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/026ab47c1b84927a39b76c65b73a6732.1.tmp
11-19 11:37:24.198  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/d542f94923eafef328443ee175f76b8e.0
11-19 11:37:24.198  W   System.err  20770   remove failed: ENOENT (No such file or directory) : /data/data/com.my.app/cache/picasso-cache/d542f94923eafef328443ee175f76b8e.1
11-19 11:37:24.208  I   Adreno-EGL  20770   <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:  ()
11-19 11:37:24.208  I   Adreno-EGL  20770   OpenGL ES Shader Compiler Version: E031.25.03.06
11-19 11:37:24.208  I   Adreno-EGL  20770   Build Date: 01/24/15 Sat
11-19 11:37:24.208  I   Adreno-EGL  20770   Local Branch: AF11_RB1_AU15
11-19 11:37:24.208  I   Adreno-EGL  20770   Remote Branch: 
11-19 11:37:24.208  I   Adreno-EGL  20770   Local Patches: 
11-19 11:37:24.208  I   Adreno-EGL  20770   Reconstruct Branch: 
11-19 11:37:24.278  I   Adreno Profiler 20770   Using libraries from system partition
11-19 11:37:24.318  I   OpenGLRenderer  20770   Initialized EGL, version 1.4
11-19 11:37:24.348  I   System.out  20770   (HTTPLog)-Static: isSBSettingEnabled false
11-19 11:37:24.348  I   System.out  20770   (HTTPLog)-Static: isShipBuild true
11-19 11:37:24.348  I   System.out  20770   (HTTPLog)-Thread-602-731616403: SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false
11-19 11:37:24.348  I   System.out  20770   (HTTPLog)-Static: isSBSettingEnabled false
11-19 11:37:24.348  I   Adreno Profiler 20770   Using libraries from system partition
11-19 11:37:24.348  I   System.out  20770   (HTTPLog)-Static: isSBSettingEnabled false
11-19 11:37:24.348  I   Adreno Profiler 20770   Using libraries from system partition
11-19 11:37:24.358  D   OpenGLRenderer  20770   Enabling debug mode 0
11-19 11:37:24.409  I   System.out  20770   KnoxVpnUidStorageknoxVpnSupported API value returned is false
11-19 11:37:24.429  I   System.out  20770   KnoxVpnUidStorageknoxVpnSupported API value returned is false
11-19 11:37:24.489  I   LoadedApk   20770   getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]]
11-19 11:37:24.509  I   art         20770   Verification error in void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.<init>(android.graphics.Path, int)
11-19 11:37:24.519  I   art         20770   void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.<init>(android.graphics.Path, int) failed to verify: register v0 has type Precise Reference: android.view.animation.LinearInterpolator but expected Reference: android.view.animation.BaseInterpolator
11-19 11:37:24.519  E   art         20770   Verification failed on class com.github.chaossss.shapableloadingview.animator.ShapePathAnimator in /data/app/com.my.app-1/base.apk because: Verifier rejected class com.github.chaossss.shapableloadingview.animator.ShapePathAnimator due to bad method void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.<init>(android.graphics.Path, int)
11-19 11:37:24.519  D   AndroidRuntime  20770   Shutting down VM

I will try to find the phone (Samsung A7 or A9 from 2016) to reproduce if I can.

chaossss commented 7 years ago

11-19 11:37:24.489 I LoadedApk 20770 getClassLoader :dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.my.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-1/lib/arm, /vendor/lib, /system/lib]]] 11-19 11:37:24.509 I art 20770 Verification error in void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.<init>(android.graphics.Path, int) 11-19 11:37:24.519 I art 20770 void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.<init>(android.graphics.Path, int) failed to verify: register v0 has type Precise Reference: android.view.animation.LinearInterpolator but expected Reference: android.view.animation.BaseInterpolator 11-19 11:37:24.519 E art 20770 Verification failed on class com.github.chaossss.shapableloadingview.animator.ShapePathAnimator in /data/app/com.my.app-1/base.apk because: Verifier rejected class com.github.chaossss.shapableloadingview.animator.ShapePathAnimator due to bad method void com.github.chaossss.shapableloadingview.animator.ShapePathAnimator.<init>(android.graphics.Path, int)

It seems like while we're trying to initialize ShapePathAnimator by this constructor:

public ShapePathAnimator(Path path, int duration)

Inside the constructor, we will intialize interpolator which leads the bug.

The JVM's verifier rejects the LinearInterpolator(variable interpolator is declared to BaseInterpolator).

I can't figure out why the verifier "reject" LinearInterpolator. VerifyError means ClassLoader could load the class we want, but due to some problem, ClassLoader treat it unsafe. (different JDK/SDK version, consistency)

So I think u could try copying the code into your project and debug it, or not uses .jar, adds dependency.