alexrainman / ModernHttpClient

ModernHttpClient
MIT License
126 stars 27 forks source link

Didn't find class "android.security.NetworkSecurityPolicy" on path: DexPathList #57

Closed Foxsterc closed 4 years ago

Foxsterc commented 4 years ago

Hi

Getting this on Android 5.1.1, 3.4.2. Removing the handler and reverting to the built in version works.

Didn't find class \"android.security.NetworkSecurityPolicy\" on path: DexPathList[[zip file

at Java.Interop.JniEnvironment+Types.FindClass (System.String classname) [0x00114] in :0 \n at Java.Interop.JniType..ctor (System.String classname) [0x00006] in :0 \n at Java.Interop.JniType.GetCachedJniType (Java.Interop.JniType& cachedType, System.String classname) [0x00018] in :0 \n at Java.Interop.JniPeerMembers.get_JniPeerType () [0x0000c] in :0 \n at Java.Interop.JniPeerMembers+JniStaticMethods.GetMethodInfo (System.String encodedMember) [0x0002b] in :0 \n at Java.Interop.JniPeerMembers+JniStaticMethods.InvokeObjectMethod (System.String encodedMember, Java.Interop.JniArgumentValue* parameters) [0x00000] in :0 \n at Android.Security.NetworkSecurityPolicy.get_Instance () [0x0000a] in :0 \n at ModernHttpClient.NativeMessageHandler..ctor (System.Boolean throwOnCapt iveNetwork, ModernHttpClient.TLSConfig tLSConfig, ModernHttpClient.NativeCookieHandler cookieHandler, System.Net.IWebProxy proxy) [0x000b2] in <726c14cb3be24ae3b39e3836344db05e>:0 \n at ModernHttpClient.NativeMessageHandler..ctor () [0x00007] in <726c14cb3be24ae3b39e3836344db05e>:0 \n at XXXXClimbing.RestApi.HttpClient () [0x00027] in F:\XXXXClimbing-Live\Working Copy\XXXXClimbing\ProjectXXXXboard.App\API\XXXXClimbing.RestApi.cs:118 \n at XXXXClimbing.RestApi.AuthoriseAsync (System.String username, System.String password) [0x000f9] in F:\XXXXClimbing-Live\Working Copy\XXXXClimbing\ProjectXXXXboard.App\API\XXXXClimbing.RestApi.cs:926 \n --- End of managed Java.Lang.ClassNotFoundException stack trace ---\njava.lang.ClassNotFoundException: Didn't find class \"android.security.NetworkSecurityPolicy\" on path: DexPathList[[zip file \"/data/app/com.XXXXclimbing.XXXXboard-1/base.apk\"],nativeLibraryDirectories=[/data/app/com.XXXXclimbing.XXXXboard-1/lib/arm, /vendor/lib, /system/lib]]\n\tat dalvik.sys tem.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:511)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:469)\n\tat md51558244f76c53b6aeda52c8a337f2c37.ButtonRenderer_ButtonClickListener.n_onClick(Native Method)\n\tat md51558244f76c53b6aeda52c8a337f2c37.ButtonRenderer_ButtonClickListener.onClick(ButtonRenderer_ButtonClickListener.java:30)\n\tat android.view.View.performClick(View.java:4856)\n\tat android.view.View$PerformClick.run(View.java:19956)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:211)\n\tat android.app.ActivityThread.main(ActivityThread.java:5371)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat java.lang.reflect.Method.invoke(Method.java:372)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)\n\tSuppressed: java.lang.ClassNotFoundException: android.security.NetworkSecurityPolicy\n\t\tat java.lang.Class.classForName(Native Method)\n\t\tat java.lang.BootClassLoader.findClass(ClassLoader.java:781)\n\t\tat java.lang.BootClassLoader.loadClass(ClassLoader.java:841)\n\t\tat java.lang.ClassLoader.loadClass(ClassLoader.java:504)\n\t\t... 13 more\n\tCaused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available\n"

Any ideas?

Thanks

Dale

rayita commented 4 years ago

Same problem here.

Looks like is related with isCleartextTrafficPermitted use in OkHttp (https://github.com/square/okhttp/issues/3772).

OkHttp team fix it in 3.12 version but this release requires Android >= 23 so it's nood good solution for us.

michalhoblik commented 4 years ago

Same problem here. Team OkHttp fixed this issue. Some of our devices under API 23 cannot use currently ModernHttpClient. We would love to see this fix as soon as possible in ModernHttpClient.

jded76 commented 4 years ago

I had this error too on android 5. I used the commit #61 provided by @SlyNet and the problem solved (tested with android versions 4.4, 5, 7.1 and 9).

Square.OkHttp3 version 3.12.x supports older android versions and they'll continue to update it until 31/12/2020 as they say on their readme.

The OkHttp 3.12.x branch supports Android 2.3+ (API level 9+) and Java 7+. These platforms lack support for TLS 1.2 and should not be used. But because upgrading is difficult we will backport critical fixes to the 3.12.x branch through December 31, 2020. From 3.13.+ it only supports android 5+.

I tried modernhttpclient with updated reference of OKHttp to version 3.12.6 and it worked fine on android versions 4.4, 5, 7.1 and 9.

@alexrainman whenever you have time, please take a look on #61 Thanks

alexrainman commented 4 years ago

Will do.

jded76 commented 4 years ago

Are you planning releasing the new version on nuget so I can tested it?

alexrainman commented 4 years ago

Yes.