RxReader / tencent_kit

Flutter版QQ登录/分享
MIT License
235 stars 63 forks source link

Android 模拟器运行报错ClassNotFoundException: com.tencent.stat.StatConfig #4

Closed zakiso closed 5 years ago

zakiso commented 5 years ago

作者你好,在Android模拟器上运行的时候报错StatConfig文件找不到,下面是错误堆栈信息:

I/openSDK_LOG.Tencent(13775): createInstance()  -- start, appId = 1108231457
I/openSDK_LOG.QQAuth(13775): QQAuth -- createInstance() --start
I/openSDK_LOG.QQAuth(13775): new QQAuth() --start
I/openSDK_LOG.AuthAgent(13775): is x86 architecture
W/System.err(13775): java.lang.ClassNotFoundException: com.tencent.stat.StatConfig
W/System.err(13775):    at java.lang.Class.classForName(Native Method)
W/System.err(13775):    at java.lang.Class.forName(Class.java:453)
W/System.err(13775):    at java.lang.Class.forName(Class.java:378)
W/System.err(13775):    at com.tencent.connect.a.a.c(ProGuard:58)
W/System.err(13775):    at com.tencent.connect.auth.c.<init>(ProGuard:42)
W/System.err(13775):    at com.tencent.connect.auth.c.a(ProGuard:77)
W/System.err(13775):    at com.tencent.tauth.Tencent.<init>(ProGuard:59)
W/System.err(13775):    at com.tencent.tauth.Tencent.createInstance(ProGuard:67)
W/System.err(13775):    at io.github.v7lin.faketencent.FakeTencentPlugin.onMethodCall(FakeTencentPlugin.java:114)
W/System.err(13775):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
W/System.err(13775):    at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl.handleMessageFromDart(FlutterNativeView.java:188)
W/System.err(13775):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:202)
W/System.err(13775):    at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(13775):    at android.os.MessageQueue.next(MessageQueue.java:326)
W/System.err(13775):    at android.os.Looper.loop(Looper.java:160)
W/System.err(13775):    at android.app.ActivityThread.main(ActivityThread.java:6669)
W/System.err(13775):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(13775):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
W/System.err(13775):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
W/System.err(13775): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.tencent.stat.StatConfig" on path: DexPathList[[zip file "/data/app/com.apppills.everything.android-qg9hXeCGm__VyUkRKYqXng==/base.apk"],nativeLibraryDirectories=[/data/app/com.apppills.everything.android-qg9hXeCGm__VyUkRKYqXng==/lib/x86, /data/app/com.apppills.everything.android-qg9hXeCGm__VyUkRKYqXng==/base.apk!/lib/x86, /system/lib]]
W/System.err(13775):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
W/System.err(13775):    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
W/System.err(13775):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
W/System.err(13775):    ... 19 more
I/openSDK_LOG.QQAuth(13775): new QQAuth() --end
I/openSDK_LOG.QQAuth(13775): QQAuth -- createInstance()  --end
W/System.err(13775): java.io.FileNotFoundException: com.tencent.open.config.json
W/System.err(13775):    at android.content.res.AssetManager.nativeOpenAsset(Native Method)
W/System.err(13775):    at android.content.res.AssetManager.open(AssetManager.java:744)
W/System.err(13775):    at android.content.res.AssetManager.open(AssetManager.java:721)
W/System.err(13775):    at com.tencent.open.utils.f.c(ProGuard:121)
W/System.err(13775):    at com.tencent.open.utils.f.a(ProGuard:91)
W/System.err(13775):    at com.tencent.open.utils.f.<init>(ProGuard:82)
W/System.err(13775):    at com.tencent.open.utils.f.a(ProGuard:71)
W/System.err(13775):    at com.tencent.tauth.Tencent.createInstance(ProGuard:79)
W/System.err(13775):    at io.github.v7lin.faketencent.FakeTencentPlugin.onMethodCall(FakeTencentPlugin.java:114)
W/System.err(13775):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
W/System.err(13775):    at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl.handleMessageFromDart(FlutterNativeView.java:188)
W/System.err(13775):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:202)
W/System.err(13775):    at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(13775):    at android.os.MessageQueue.next(MessageQueue.java:326)
W/System.err(13775):    at android.os.Looper.loop(Looper.java:160)
W/System.err(13775):    at android.app.ActivityThread.main(ActivityThread.java:6669)
W/System.err(13775):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(13775):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
W/System.err(13775):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/openSDK_LOG.Tencent(13775): createInstance()  -- end
E/AndroidRuntime(13775): FATAL EXCEPTION: Thread-2
E/AndroidRuntime(13775): Process: com.apppills.everything.android, PID: 13775
E/AndroidRuntime(13775): java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/scheme/SchemeRegistry;
E/AndroidRuntime(13775):    at com.tencent.open.utils.HttpUtils.getHttpClient(ProGuard:626)
E/AndroidRuntime(13775):    at com.tencent.open.utils.HttpUtils.openUrl2(ProGuard:506)
E/AndroidRuntime(13775):    at com.tencent.open.utils.f$1.run(ProGuard:197)
E/AndroidRuntime(13775): Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry" on path: DexPathList[[zip file "/data/app/com.apppills.everything.android-qg9hXeCGm__VyUkRKYqXng==/base.apk"],nativeLibraryDirectories=[/data/app/com.apppills.everything.android-qg9hXeCGm__VyUkRKYqXng==/lib/x86, /data/app/com.apppills.everything.android-qg9hXeCGm__VyUkRKYqXng==/base.apk!/lib/x86, /system/lib]]
E/AndroidRuntime(13775):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
E/AndroidRuntime(13775):    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
E/AndroidRuntime(13775):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
E/AndroidRuntime(13775):    ... 3 more
I/Process (13775): Sending signal. PID: 13775 SIG: 9
Lost connection to device.

不知是否是因为x86架构的原因,我使用了AndroidX库

droplet-js commented 5 years ago

腾讯SDK自身原因,不影响正常使用 ...

zakiso commented 5 years ago

影响使用啊 我这边闪退

zakiso commented 5 years ago

解决了 不是库的问题, 是升级到Android9.0之后 不包含apache的http库了 参考这篇文章配置可以修复: https://blog.csdn.net/chinaboyliusir/article/details/82755193

droplet-js commented 5 years ago

@zakiso 确认一下,是否 Android 9 模拟器?

如果是,着急的话,可先用一下方法解决一下。

<uses-library android:name="org.apache.http.legacy" android:required="false"/>
droplet-js commented 5 years ago

我稍后将这段引用打包进library里去

saviourdog commented 4 years ago

加了还是报错啊

droplet-js commented 4 years ago

这个问题早已解决了,请检查一下是否使用最新library

saviourdog commented 4 years ago

这个问题早已解决了,请检查一下是否使用最新library

全是最新版,偶现

saviourdog commented 4 years ago

这个问题早已解决了,请检查一下是否使用最新library

每次flutter run第一次启动必现,R重启不会出现

saviourdog commented 4 years ago

这个问题早已解决了,请检查一下是否使用最新library

第一次必现,知道是什么原因吗

droplet-js commented 4 years ago

@saviourdog 如果只是 Logcat 上打印 ClassNotFoundException... 的话,其实没有关系,这是QQ SDK自身的问题,放心用

saviourdog commented 4 years ago

@saviourdog 如果只是 Logcat 上打印 ClassNotFoundException... 的话,其实没有关系,这是QQ SDK自身的问题,放心用

好的,谢谢巨佬