Open Trowa opened 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.
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
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?
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.
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.
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.
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