AnchorFreePartner / hydrasdk-demo-android

Hydra VPN SDK demo app for Android
https://developer.anchorfree.com/
60 stars 31 forks source link

Crash - Caused by `android.os.NetworkOnMainThreadException` #92

Closed MartinDevi closed 3 years ago

MartinDevi commented 3 years ago

Hello,

A crash came up in our recent versions, detected by our crashlytics tool. Our SDK version is 3.3.1.

Full stack trace:

Fatal Exception: java.lang.ExceptionInInitializerError
       at org.xbill.DNS.Lookup.refreshDefault(Lookup.java:86)
       at com.anchorfree.vpnsdk.network.probe.ProtectedDns.<clinit>(ProtectedDns.java:33)
       at com.anchorfree.sdk.SdkNetworkLayerSource$RouterConfigurer.configure(SdkNetworkLayerSource.java:55)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer.clientBuilder(OkHttpNetworkLayer.java:211)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer.buildClient(OkHttpNetworkLayer.java:179)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer.<init>(OkHttpNetworkLayer.java:63)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer$Builder.build(OkHttpNetworkLayer.java:361)
       at com.anchorfree.sdk.SdkNetworkLayerSource$DelegateNetworkLayer.lambda$buildClient$0(SdkNetworkLayerSource.java:99)
       at com.anchorfree.sdk.-$$Lambda$SdkNetworkLayerSource$DelegateNetworkLayer$qCuXVm-NMk-WD_oPdE3FaNLHNkc.then(-.java:2)
       at com.anchorfree.bolts.Task$14.run(Task.java:914)
       at com.anchorfree.bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:108)
       at com.anchorfree.bolts.Task.completeImmediately(Task.java:905)
       at com.anchorfree.bolts.Task.continueWith(Task.java:688)
       at com.anchorfree.bolts.Task.continueWith(Task.java:700)
       at com.anchorfree.sdk.SdkNetworkLayerSource$DelegateNetworkLayer.buildClient(SdkNetworkLayerSource.java:96)
       at com.anchorfree.sdk.SdkNetworkLayerSource$DelegateNetworkLayer.<init>(SdkNetworkLayerSource.java:86)
       at com.anchorfree.sdk.SdkNetworkLayerSource.<init>(SdkNetworkLayerSource.java:29)
       at com.anchorfree.sdk.CarrierFactory.createBackend(CarrierFactory.java:33)
       at com.anchorfree.sdk.UnifiedSDKConcrete.<init>(UnifiedSDKConcrete.java:48)
       at com.anchorfree.sdk.UnifiedSDK.getInstance(UnifiedSDK.java:200)
       at com.anchorfree.sdk.UnifiedSDK.getInstance(UnifiedSDK.java:162)
       at com.dashlane.vpn.VpnWrapper.<init>(VpnWrapper.java:44)
       at com.dashlane.vpn.VpnManager.<init>(VpnManager.java:72)
       at com.dashlane.vpn.VpnManager$Companion$instance$2.invoke(VpnManager.java:46)
       at com.dashlane.vpn.VpnManager$Companion$instance$2.invoke(VpnManager.java:41)
       at kotlin.SynchronizedLazyImpl.getValue(SynchronizedLazyImpl.java:74)
       at com.dashlane.vpn.VpnManager$Companion.getInstance(VpnManager.java:66)
       at com.dashlane.vpn.VpnManager.getInstance(VpnManager.java:66)
       at com.dashlane.DashlaneApplicationObserver.initialize(DashlaneApplicationObserver.java:148)
       at com.dashlane.DashlaneApplicationObserver.onCreate(DashlaneApplicationObserver.java:101)
       at com.dashlane.DashlaneApplication.onCreate(DashlaneApplication.java:88)
       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
       at android.app.ActivityThread.access$1300(ActivityThread.java:237)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:223)
       at android.app.ActivityThread.main(ActivityThread.java:7656)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by android.os.NetworkOnMainThreadException
       at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1605)
       at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115)
       at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
       at java.net.InetAddress.getByName(InetAddress.java:1106)
       at org.xbill.DNS.SimpleResolver.<init>(SimpleResolver.java:56)
       at org.xbill.DNS.SimpleResolver.<init>(SimpleResolver.java:68)
       at org.xbill.DNS.ExtendedResolver.<init>(ExtendedResolver.java:266)
       at org.xbill.DNS.Lookup.refreshDefault(Lookup.java:86)
       at org.xbill.DNS.Lookup.<clinit>(Lookup.java:97)
       at org.xbill.DNS.Lookup.refreshDefault(Lookup.java:86)
       at com.anchorfree.vpnsdk.network.probe.ProtectedDns.<clinit>(ProtectedDns.java:33)
       at com.anchorfree.sdk.SdkNetworkLayerSource$RouterConfigurer.configure(SdkNetworkLayerSource.java:55)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer.clientBuilder(OkHttpNetworkLayer.java:211)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer.buildClient(OkHttpNetworkLayer.java:179)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer.<init>(OkHttpNetworkLayer.java:63)
       at com.anchorfree.partner.api.network.OkHttpNetworkLayer$Builder.build(OkHttpNetworkLayer.java:361)
       at com.anchorfree.sdk.SdkNetworkLayerSource$DelegateNetworkLayer.lambda$buildClient$0(SdkNetworkLayerSource.java:99)
       at com.anchorfree.sdk.-$$Lambda$SdkNetworkLayerSource$DelegateNetworkLayer$qCuXVm-NMk-WD_oPdE3FaNLHNkc.then(-.java:2)
       at com.anchorfree.bolts.Task$14.run(Task.java:914)
       at com.anchorfree.bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:108)
       at com.anchorfree.bolts.Task.completeImmediately(Task.java:905)
       at com.anchorfree.bolts.Task.continueWith(Task.java:688)
       at com.anchorfree.bolts.Task.continueWith(Task.java:700)
       at com.anchorfree.sdk.SdkNetworkLayerSource$DelegateNetworkLayer.buildClient(SdkNetworkLayerSource.java:96)
       at com.anchorfree.sdk.SdkNetworkLayerSource$DelegateNetworkLayer.<init>(SdkNetworkLayerSource.java:86)
       at com.anchorfree.sdk.SdkNetworkLayerSource.<init>(SdkNetworkLayerSource.java:29)
       at com.anchorfree.sdk.CarrierFactory.createBackend(CarrierFactory.java:33)
       at com.anchorfree.sdk.UnifiedSDKConcrete.<init>(UnifiedSDKConcrete.java:48)
       at com.anchorfree.sdk.UnifiedSDK.getInstance(UnifiedSDK.java:200)
       at com.anchorfree.sdk.UnifiedSDK.getInstance(UnifiedSDK.java:162)
       at ...

Should we be offloading something to a background thread? This issue came up recently without any change on our side, so I suspect that the change might be somewhere else...

timoshenkoav commented 3 years ago

Hello! Please update to 3.3.3