lundi 29 juin 2015

FlexJson ClassNotFound Exception on Android 4.4.4


I´ve got a multidex project for Android devices. I use Flexjson. I´ve already tested it with flexjson 3.3 and 2.x.

It works perfectly well with android 5.x but crashes in Android 4.4.4.

It looks like the Dex support library is not working propperly with older Android versions but I cannot tell.

Here´s my stacktrace:

06-29 03:50:44.763  11884-11884/com.pigdroid.gameboard E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.pigdroid.gameboard, PID: 11884
flexjson.JSONException: [ layers.values ]:  Could not load com.pigdroid.game.board.tile.model.IntTileLayer
        at flexjson.ObjectBinder.findClassInMap(ObjectBinder.java:250)
        at flexjson.ObjectBinder.findClassName(ObjectBinder.java:213)
        at flexjson.ObjectBinder.bind(ObjectBinder.java:92)
        at flexjson.ObjectBinder.bindIntoCollection(ObjectBinder.java:110)
        at flexjson.factories.ListObjectFactory.instantiate(ListObjectFactory.java:13)
        at flexjson.ObjectBinder.bind(ObjectBinder.java:95)
        at flexjson.ObjectBinder.bindIntoObject(ObjectBinder.java:149)
        at flexjson.factories.ExistingObjectFactory.instantiate(ExistingObjectFactory.java:25)
        at flexjson.ObjectBinder.bind(ObjectBinder.java:95)
        at flexjson.ObjectBinder.bind(ObjectBinder.java:74)
        at flexjson.JSONDeserializer.deserialize(JSONDeserializer.java:241)
        at flexjson.JSONDeserializer.deserializeInto(JSONDeserializer.java:301)
        at com.pigdroid.game.model.memento.UndoableObject.from(UndoableObject.java:35)
        at com.pigdroid.game.controller.GameController.loadModelFromSerialized(GameController.java:108)
        at com.pigdroid.gameboard.view.detail.game.tile.TileBoardGameFragmentController.setGame(TileBoardGameFragmentController.java:692)
        at com.pigdroid.gameboard.view.detail.game.GameDetailFragment.onKickOff(GameDetailFragment.java:168)
        at com.pigdroid.gameboard.view.ServiceFragment.kickOffIf(ServiceFragment.java:71)
        at com.pigdroid.gameboard.view.detail.game.GameDetailFragment.kickOffIf(GameDetailFragment.java:159)
        at com.pigdroid.gameboard.view.ServiceFragment$3.bound(ServiceFragment.java:52)
        at com.pigdroid.gameboard.view.ServiceFragment$3.bound(ServiceFragment.java:48)
        at com.pigdroid.android.hateaidl.HateAIDLConnection$3.onServiceConnected(HateAIDLConnection.java:118)
        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1101)
        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1118)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5001)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.pigdroid.game.board.tile.model.IntTileLayer" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
        at android.app.LoadedApk$WarningContextClassLoader.loadClass(LoadedApk.java:430)
        at flexjson.ObjectBinder.findClassInMap(ObjectBinder.java:243)

            at flexjson.ObjectBinder.findClassName(ObjectBinder.java:213)             at flexjson.ObjectBinder.bind(ObjectBinder.java:92)             at flexjson.ObjectBinder.bindIntoCollection(ObjectBinder.java:110)             at flexjson.factories.ListObjectFactory.instantiate(ListObjectFactory.java:13)             at flexjson.ObjectBinder.bind(ObjectBinder.java:95)             at flexjson.ObjectBinder.bindIntoObject(ObjectBinder.java:149)             at flexjson.factories.ExistingObjectFactory.instantiate(ExistingObjectFactory.java:25)             at flexjson.ObjectBinder.bind(ObjectBinder.java:95)             at flexjson.ObjectBinder.bind(ObjectBinder.java:74)             at flexjson.JSONDeserializer.deserialize(JSONDeserializer.java:241)             at flexjson.JSONDeserializer.deserializeInto(JSONDeserializer.java:301)             at com.pigdroid.game.model.memento.UndoableObject.from(UndoableObject.java:35)             at com.pigdroid.game.controller.GameController.loadModelFromSerialized(GameController.java:108)             at com.pigdroid.gameboard.view.detail.game.tile.TileBoardGameFragmentController.setGame(TileBoardGameFragmentController.java:692)             at com.pigdroid.gameboard.view.detail.game.GameDetailFragment.onKickOff(GameDetailFragment.java:168)             at com.pigdroid.gameboard.view.ServiceFragment.kickOffIf(ServiceFragment.java:71)             at com.pigdroid.gameboard.view.detail.game.GameDetailFragment.kickOffIf(GameDetailFragment.java:159)             at com.pigdroid.gameboard.view.ServiceFragment$3.bound(ServiceFragment.java:52)             at com.pigdroid.gameboard.view.ServiceFragment$3.bound(ServiceFragment.java:48)             at com.pigdroid.android.hateaidl.HateAIDLConnection$3.onServiceConnected(HateAIDLConnection.java:118)             at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1101)             at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1118)             at android.os.Handler.handleCallback(Handler.java:733)             at android.os.Handler.dispatchMessage(Handler.java:95)             at android.os.Looper.loop(Looper.java:136)             at android.app.ActivityThread.main(ActivityThread.java:5001)             at java.lang.reflect.Method.invokeNative(Native Method)             at java.lang.reflect.Method.invoke(Method.java:515)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)             at dalvik.system.NativeStart.main(Native Method)


Aucun commentaire:

Enregistrer un commentaire