Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I found some crash problems #58

Open
YYYSSSHHH opened this issue Aug 13, 2020 · 1 comment
Open

I found some crash problems #58

YYYSSSHHH opened this issue Aug 13, 2020 · 1 comment

Comments

@YYYSSSHHH
Copy link

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!

@crutchcorn
Copy link
Member

We have admittedly not touched the Android app in some time. All of the project members have moved onto other projects.

If you'd like to fork this project, please feel free. We recommend replacing the Android app shell that we had in place - the current version is extremely outdated.

If you do fork, please remember to respect our licenses and credit where it is due

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants