Skip to content

I found some crash problems  #58

Open
@YYYSSSHHH

Description

@YYYSSSHHH

Environment Info:
MaterialIOS :android:versionCode="10" android:versionName="2.1"
AndroidOS Version = “6.0.1”

Description information:
We find that mobile apps are prone to crashes due to a network issue, mainly because successful network API calls return unexpected or no data.
And we found that when this app's network returned data is null or some fields are null (JSON format), or is empty ,or the network request fails (status code is 404/503), , the app has crashed.

crash information:
### crash one:
crashActivity=com.jvillalba.apod.classic.activities.MainActivity

java.lang.RuntimeException: Failed to prepare ResponseConverter for target class com.afollestad.polar.util.WallpaperUtils$WallpapersHolder: https://raw.githubusercontent.com/materialos/Illustrations/master/wallpapers.json, 404 error, error: Value error of type java.lang.String cannot be converted to JSONObject
at com.afollestad.bridge.conversion.base.ResponseConverter.convertObject(ResponseConverter.java:33)
at com.afollestad.bridge.Response.asClass(Response.java:203)
at com.afollestad.bridge.RequestBuilder$9.response(RequestBuilder.java:495)
at com.afollestad.bridge.CallbackStack$1.run(CallbackStack.java:59)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
Caused by: com.afollestad.bridge.BridgeException: https://raw.githubusercontent.com/materialos/Illustrations/master/wallpapers.json, 404 error, error: Value error of type java.lang.String cannot be converted to JSONObject
at com.afollestad.bridge.Response.asJsonObject(Response.java:157)
at com.afollestad.bridge.conversion.JsonResponseConverter.onPrepare(JsonResponseConverter.java:34)
at com.afollestad.bridge.conversion.base.ResponseConverter.convertObject(ResponseConverter.java:31)
... 10 more
Caused by: org.json.JSONException: Value error of type java.lang.String cannot be converted to JSONObject
at org.json.JSON.typeMismatch(JSON.java:111)
at org.json.JSONObject.(JSONObject.java:160)
at org.json.JSONObject.(JSONObject.java:173)
at com.afollestad.bridge.Response.asJsonObject(Response.java:154)
... 12 more
com.afollestad.bridge.BridgeException: https://raw.githubusercontent.com/materialos/Illustrations/master/wallpapers.json, 404 error, error: Value error of type java.lang.String cannot be converted to JSONObject
at com.afollestad.bridge.Response.asJsonObject(Response.java:157)
at com.afollestad.bridge.conversion.JsonResponseConverter.onPrepare(JsonResponseConverter.java:34)
at com.afollestad.bridge.conversion.base.ResponseConverter.convertObject(ResponseConverter.java:31)
at com.afollestad.bridge.Response.asClass(Response.java:203)
at com.afollestad.bridge.RequestBuilder$9.response(RequestBuilder.java:495)
at com.afollestad.bridge.CallbackStack$1.run(CallbackStack.java:59)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
Caused by: org.json.JSONException: Value error of type java.lang.String cannot be converted to JSONObject
at org.json.JSON.typeMismatch(JSON.java:111)
at org.json.JSONObject.(JSONObject.java:160)
at org.json.JSONObject.(JSONObject.java:173)
at com.afollestad.bridge.Response.asJsonObject(Response.java:154)
... 12 more
org.json.JSONException: Value error of type java.lang.String cannot be converted to JSONObject
at org.json.JSON.typeMismatch(JSON.java:111)
at org.json.JSONObject.(JSONObject.java:160)
at org.json.JSONObject.(JSONObject.java:173)
at com.afollestad.bridge.Response.asJsonObject(Response.java:154)
at com.afollestad.bridge.conversion.JsonResponseConverter.onPrepare(JsonResponseConverter.java:34)
at com.afollestad.bridge.conversion.base.ResponseConverter.convertObject(ResponseConverter.java:31)
at com.afollestad.bridge.Response.asClass(Response.java:203)
at com.afollestad.bridge.RequestBuilder$9.response(RequestBuilder.java:495)
at com.afollestad.bridge.CallbackStack$1.run(CallbackStack.java:59)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)

### crash two:

crashActivity=com.jvillalba.apod.classic.activities.MainActivity

: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference
at com.jvillalba.apod.classic.adapter.MyAdapter.addAll(MyAdapter.java:32)
at com.jvillalba.apod.classic.controller.NasaController$1.onResponse(NasaController.java:30)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)

### crash three:

crashActivity=com.jvillalba.apod.classic.activities.MainActivity

:java.lang.IllegalArgumentException: Path must not be empty.
at com.squareup.picasso.Picasso.load(Picasso.java:297)
at com.jvillalba.apod.classic.adapter.MyAdapter$ViewHolder.bind(MyAdapter.java:84)
at com.jvillalba.apod.classic.adapter.MyAdapter.onBindViewHolder(MyAdapter.java:59)
at com.jvillalba.apod.classic.adapter.MyAdapter.onBindViewHolder(MyAdapter.java:18)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6482)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6515)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5458)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5724)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5563)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5559)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2229)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1516)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:608)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3693)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3410)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3962)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:443)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
at android.view.View.layout(View.java:16636)
at android.view.ViewGroup.layout(ViewGroup.java:5437)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2165)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1925)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6007)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5539)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)

Finally:
The cause of the program crash may be that the network response data is not handled properly in the code.
If you have confirmed or fixed this problem, please give me a reply, thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions