ShapableLoadingView icon indicating copy to clipboard operation
ShapableLoadingView copied to clipboard

VerifyError exception

Open Trowa opened this issue 9 years ago • 6 comments

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

Trowa avatar Nov 23 '16 16:11 Trowa

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.

chaossss avatar Nov 24 '16 03:11 chaossss

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

Trowa avatar Nov 24 '16 10:11 Trowa

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 avatar Nov 24 '16 10:11 chaossss

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.

chaossss avatar Nov 24 '16 10:11 chaossss

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.

Trowa avatar Nov 24 '16 10:11 Trowa

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.

chaossss avatar Nov 24 '16 11:11 chaossss