마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

gson 사용중 SecurityException발생 질문

0 추천

gson을 통해 객체를 저장하려고 하는데 저장하는 부분에서 securityexception이 발생합니다.

 if(frAdapter != null){
            frAdapter.notifyDataSetChanged();
        }

        gson = new GsonBuilder().create();
        String saveAdapter = gson.toJson(frAdapter);

        editor.putString("adapter", saveAdapter);
        editor.commit();
    }

toJson부분에서 에러가 발생하는데 이유가 뭘까요..

E/AndroidRuntime: FATAL EXCEPTION: main

    Process: com.uswit.videocalltranslate, PID: 10817

    java.lang.SecurityException: Can not make a java.lang.reflect.Method constructor accessible

        at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:133)

        at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:119)

        at com.google.gson.internal.reflect.PreJava9ReflectionAccessor.makeAccessible(PreJava9ReflectionAccessor.java:31)

        at com.google.gson.internal.ConstructorConstructor.newDefaultConstructor(ConstructorConstructor.java:103)

        at com.google.gson.internal.ConstructorConstructor.get(ConstructorConstructor.java:85)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:101)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.ArrayTypeAdapter$1.create(ArrayTypeAdapter.java:48)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)

        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)

        at com.google.gson.Gson.getAdapter(Gson.java:458)

        at com.google.gson.Gson.toJson(Gson.java:696)

        at com.google.gson.Gson.toJson(Gson.java:683)

        at com.google.gson.Gson.toJson(Gson.java:638)

        at com.uswit.videocalltranslate.MainActivity.updateAdapter(MainActivity.java:569)

        at com.uswit.videocalltranslate.MainActivity.connectToRoom(MainActivity.java:273)

        at com.uswit.videocalltranslate.MainActivity.lambda$onCreate$0$MainActivity(MainActivity.java:113)

        at com.uswit.videocalltranslate.-$$Lambda$MainActivity$GgIc1cSQi-6bTCCpxMvRlwEnKzU.onClick(lambda)

        at android.view.View.performClick(View.java:6261)

        at android.view.View$PerformClick.run(View.java:23752)

        at android.os.Handler.handleCallback(Handler.java:751)

        at android.os.Handler.dispatchMessage(Handler.java:95)

        at android.os.Looper.loop(Looper.java:154)

        at android.app.ActivityThread.main(ActivityThread.java:6776)

        at java.lang.reflect.Method.invoke(Native Method)

        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)

 

익명사용자 님이 2019년 5월 24일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...