Open VomPom opened 1 month ago
请问怎样跟踪日志,创维酷开50U2同样的问题,android5.0.1
gson的版本是2.8.5 最低是19,17待驗證
请问怎样跟踪日志,创维酷开50U2同样的问题,android5.0.1
电视 adb 模式打开,并找到 ip 信息,使用 adb connect 连接到对应的 ip,使用 logcat 即可捕获日志
创维酷开50U2,Android5.0.1同样的错误 E/AndroidRuntime(21445): FATAL EXCEPTION: OkHttp Dispatcher E/AndroidRuntime(21445): Process: com.lizongying.mytv, PID: 21445 E/AndroidRuntime(21445): java.lang.NoSuchMethodError: No virtual method newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader; in class Lcom/google/gson/Gson; or its super classes (declaration of 'com.google.gson.Gson' appears in /system/framework/skyworthdigital.jar) E/AndroidRuntime(21445): at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37) E/AndroidRuntime(21445): at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27) E/AndroidRuntime(21445): at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:225) E/AndroidRuntime(21445): at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:121) E/AndroidRuntime(21445): at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206) E/AndroidRuntime(21445): at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) E/AndroidRuntime(21445): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) E/AndroidRuntime(21445): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) E/AndroidRuntime(21445): at java.lang.Thread.run(Thread.java:818)
大概知道原因了,電視的Gson導致的,我看看怎麼解決
大家可以試試2.0.7,應該能解決這個問題。
还是同样的错误 E/AndroidRuntime( 5330): FATAL EXCEPTION: OkHttp Dispatcher E/AndroidRuntime( 5330): Process: com.lizongying.mytv, PID: 5330 E/AndroidRuntime( 5330): java.lang.NoSuchMethodError: No virtual method newJsonReader(Ljava/io/Reader;)Lcom/google/gson/stream/JsonReader; in class Lcom/google/gson/Gson; or its super classes (declaration of 'com.google.gson.Gson' appears in /system/framework/skyworthdigital.jar) E/AndroidRuntime( 5330): at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37) E/AndroidRuntime( 5330): at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27) E/AndroidRuntime( 5330): at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:225) E/AndroidRuntime( 5330): at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:121) E/AndroidRuntime( 5330): at okhttp3.RealCall$AsyncCall.execute(RealCall.java:206) E/AndroidRuntime( 5330): at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) E/AndroidRuntime( 5330): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) E/AndroidRuntime( 5330): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) E/AndroidRuntime( 5330): at java.lang.Thread.run(Thread.java:818) W/ActivityManager( 1623): Force finishing activity com.lizongying.mytv/.MainActivity
2.0.8
同样的错误
2.0.9 同样的报错
那就沒辦法了
感谢!
可否试一下更换gson为jackson
https://square.github.io/retrofit/
CONVERTERS By default, Retrofit can only deserialize HTTP bodies into OkHttp's ResponseBody type and it can only accept its RequestBody type for @Body.
Converters can be added to support other types. Sibling modules adapt popular serialization libraries for your convenience.
com.squareup.retrofit2:converter-gson com.squareup.retrofit2:converter-jackson ...
Retrofit retrofit = new Retrofit.Builder() ... .addConverterFactory(GsonConverterFactory.create()) ==> 改成jacksonConvertery试试 .build();
报错源找到了
public T convert(ResponseBody value) throws IOException { JsonReader jsonReader = gson.newJsonReader(value.charStream());
源代码缺少 src/main/cpp/native.c 和 src/main/cpp/aes.c 两个文件,编译不了
检查清单
my-ty 版本
通用版
Bug 描述
预期行为
正常运行
实际行为
打开进入就crash![Screenshot_20240525_115855](https://github.com/lizongying/my-tv/assets/27652454/49128419-2bdc-48a5-860b-c30ae9f4669a)
复现步骤
正常安装运行
UI / OS
Skyworth(创维)
Android 版本
Android 4.2 SDK level 17
额外信息
看日志是 Gson 库兼容相关的问题,App源码工程是 minSdk 21,电视是17,可能需要向下兼容,电视挺老的,不过一直能正常流畅的运行其他应用