Android — 一個Google play console上提示的Unsafe StrictMode policy violation

JLin
Jan 13, 2021

--

StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe;
at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
at java.lang.Class.getDeclaredField(Native Method)
at com.google.gson.internal.UnsafeAllocator.create(SourceFile:2)
at com.google.gson.internal.ConstructorConstructor$14.<init>(SourceFile:2)
at com.google.gson.internal.ConstructorConstructor.newUnsafeAllocator(SourceFile:1)
at com.google.gson.internal.ConstructorConstructor.get(SourceFile:10)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(SourceFile:3)
at com.google.gson.Gson.getAdapter(SourceFile:9)
at com.google.gson.Gson.fromJson(SourceFile:16)
at com.google.gson.Gson.fromJson(SourceFile:10)
at com.google.gson.Gson.fromJson(SourceFile:4)
at com.google.gson.Gson.fromJson(SourceFile:1)

可以看到有提示使用到unsafe api ,後來查是gson的問題,在開啟StrictMode後可以發現這個提示

在github的gson上的issue有看到也有人提出

或是這篇

但沒有最終的解決

有人提到這個解法,似乎有講到

有新的在補充

--

--

JLin

台中 / JAVA / Android /Kotlin / Kotlin Native 對於Kotlin衍生的JVM等技術 Compose for web / desktop / Ktor Server,生成式AI (Gemini/OpenAI)各式應用, 都有小興趣