google / google/gson

JNI Error in Android

Open
#817 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
24.2k
Forks
4.5k
Avg merge
6d 4h
Merged PRs (30d)
12

Description

I am getting a 'JNI DETECTED AN ERROR IN APPLICATION" while using gson 2.5.jar in Android. Can anyone tell me how to solve this? Appreciate it.
I am using a sub-class of Parse Object using Parse SDK.
Here is the stack trace:

```
03-28 14:01:15.445: E/art(28683): JNI DETECTED ERROR IN APPLICATION: can't make objects of type java.util.concurrent.locks.Lock: 0x70dd7858
03-28 14:01:15.445: E/art(28683): in call to AllocObject
03-28 14:01:15.445: E/art(28683): from java.lang.Object sun.misc.Unsafe.allocateInstance(java.lang.Class)
03-28 14:01:15.445: E/art(28683): "main" prio=5 tid=1 Runnable
03-28 14:01:15.445: E/art(28683): | group="main" sCount=0 dsCount=0 obj=0x7617aef8 self=0x7fa917c400
03-28 14:01:15.445: E/art(28683): | sysTid=28683 nice=0 cgrp=default sched=0/0 handle=0x7face5d2c0
03-28 14:01:15.445: E/art(28683): | state=R schedstat=( 657346072 17671229 611 ) utm=52 stm=13 core=1 HZ=100
03-28 14:01:15.445: E/art(28683): | stack=0x7fe28ac000-0x7fe28ae000 stackSize=8MB
03-28 14:01:15.445: E/art(28683): | held mutexes= "mutator lock"(shared held)
03-28 14:01:15.445: E/art(28683): at sun.misc.Unsafe.allocateInstance(Native method)
03-28 14:01:15.445: E/art(28683): at java.lang.reflect.Method.invoke!(Native method)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.UnsafeAllocator$1.newInstance(UnsafeAllocator.java:48)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:223)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:207)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:117)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:217)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:117)
03-28 14:01:15.445: E/art(28683): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:217)
03-28 14:01:15.445: E/art(28683): at com.google.gson.Gson.fromJson(Gson.java:861)
03-28 14:01:15.445: E/art(28683): at com.google.gson.Gson.fromJson(Gson.java:826)
03-28 14:01:15.445: E/art(28683): at com.google.gson.Gson.fromJson(Gson.java:775)
03-28 14:01:15.445: E/art(28683): at com.google.gson.Gson.fromJson(Gson.java:747)
03-28 14:01:15.445: E/art(28683): at b5.project.medibro.FeedItemDetails.onCreate(FeedItemDetails.java:47)
03-28 14:01:15.445: E/art(28683): at android.app.Activity.performCreate(Activity.java:6583)
03-28 14:01:15.445: E/art(28683): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1114)
03-28 14:01:15.445: E/art(28683): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2531)
03-28 14:01:15.445: E/art(28683): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2666)
03-28 14:01:15.445: E/art(28683): at android.app.ActivityThread.-wrap11(ActivityThread.java:-1)
03-28 14:01:15.445: E/art(28683): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1493)
03-28 14:01:15.445: E/art(28683): at android.os.Handler.dispatchMessage(Handler.java:111)
03-28 14:01:15.445: E/art(28683): at android.os.Looper.loop(Looper.java:207)
03-28 14:01:15.445: E/art(28683): at android.app.ActivityThread.main(ActivityThread.java:5769)
03-28 14:01:15.445: E/art(28683): at java.lang.reflect.Method.invoke!(Native method)
03-28 14:01:15.445: E/art(28683): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
03-28 14:01:15.445: E/art(28683): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
```

The error is occurring at the last line of this code:

```
gson=new Gson();
String jsonObj=getIntent().getStringExtra("feedItem");
item = gson.fromJson(jsonObj, FeedItem.class);
```

I have logged the json string which I am getting. The formatted json string is

```
{
"feedItemChannel":"mdldsrgXN1",
"estimatedData":{
"feedTopic":"Testing",
"feedComments":2,
"createdBy":"KXTQtpfBSW",
"feedQuestion":"Test Question ",
"feedDesc":"Test "
},
"hashedObjects":{

},
"isDeleted":false,
"isDeletingEventually":0,
"mutex":{

},
"operationSetQueue":[
{

}
],
"saveEvent":{
"callbacks":[

]
},
"state":{
"className":"FeedItem",
"createdAt":1458798818385,
"isComplete":true,
"objectId":"mdldsrgXN1",
"serverData":{
"feedTopic":"TestTopic",
"createdBy":"KXTQtpfBSW",
"feedComments":2,
"feedQuestion":"Test Question ",
"feedDesc":"Test "
},
"updatedAt":1458803553636
},
"taskQueue":{
"lock":{
"sync":{
"state":0
}
}
}
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.