Reputation: 2449
I am using an activity in multiple screens, and the app crashes when I click back button on a specific one screen only, but it works fine on the others...
So I call the screen in the below method:
@Override
public void donateOnClic(ActivityOrganizationModel activityOrganizationModel) {
DonateActivity.startActivity(activityOrganizationModel, getScreenName(), getContext());
try {
sendToMixpanelLanguage(Config.MIXPANEL_EVENT_DONATION_ACTIVITY);
} catch (JSONException e) {
e.printStackTrace();
}
}
and this is the below exception I found when I click back button:
V/FA: Inactivity, disconnecting from the service
E/HTTP: <-- 500 INTERNAL SERVER ERROR https://automator.appgain.io/automessages/5e403f53970b2b000b92de74/firevent/userdidnotdonate/123468393 (7568ms)
E/HTTP: Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: x-parse-master-key,x-parse-application-id,Accept,Accept-Version,Content-Length,Content-MD5,Content-Type,Date,X-Auth-Token,authToken,appapikey,Authorization,appid
Content-Type: text/html; charset=UTF-8
Date: Sun, 07 Nov 2021 09:00:58 GMT
Server: gunicorn/19.6.0
Via: kong/0.11.2
X-Kong-Proxy-Latency: 2862
X-Kong-Upstream-Latency: 3764
Content-Length: 291
Connection: keep-alive
E/HTTP: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
<-- END HTTP (291-byte body)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.quantatil.ikhar, PID: 22387
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at io.appgain.sdk.controller.Utils.getAppGainFailure(Utils.java:81)
at io.appgain.sdk.controller.Automator$1$2.onResponse(Automator.java:65)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:71)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at io.appgain.sdk.controller.Utils.getAppGainFailure(Utils.java:81)
at io.appgain.sdk.controller.Automator$1$2.onResponse(Automator.java:65)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:71)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
Upvotes: 1
Views: 91
Reputation: 360
The problem is:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
This happens when you try to convert an Json
object to POJO
but in this case the Json
object & POJO
object doesn't match at all, so Gson
throw this Exception
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
So, the application is crashing on Gson
conversation state where Gson
was expacting an Json
object (respective to your POJO
) but got an HTML
page.
Upvotes: 1