You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Below exception is thrown when I init the trust kit for android using below line TrustKit.initializeWithNetworkSecurityConfiguration(context)
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/preference/PreferenceManager;
at com.datatheorem.android.trustkit.utils.VendorIdentifier.getOrCreate(VendorIdentifier.java:24)
at com.datatheorem.android.trustkit.TrustKit.(TrustKit.java:209)
at com.datatheorem.android.trustkit.TrustKit.initializeWithNetworkSecurityConfiguration(TrustKit.java:321)
at com.datatheorem.android.trustkit.TrustKit.initializeWithNetworkSecurityConfiguration(TrustKit.java:271)
To Reproduce
There are no steps just the init line causes this issue and this issue has nothing to do with network_security_config and thats added under application tag in app's manifest and in xml directory under res.
The pattern for my base url is added and I am using 64 char length pinset.
My network config is below for ref.
Expected behavior
I want to implement SSL pinning for Android 21 and above.
This issue disappeared when I added below dependency which is already present in your build.gradle in my library build.gradle file.
But I should'nt add this its logically invalid my library isn't using below dependency.
implementation 'androidx.preference:preference:1.1.1'
I could be wrong here, but it looks like VendorIdentifier is only used by BackgroundReporter. So if you are not interested in using background reporting, then the code could be slightly re-written to avoid this additional dependency. Only if background reporting is enabled do you need to persist TRUSTKIT_VENDOR_ID. As the code is now, everyone has to save this whether or not they want to.
Activity
mmobin789 commentedon Aug 7, 2020
This issue disappeared when I added below dependency which is already present in your build.gradle in my library build.gradle file.
But I should'nt add this its logically invalid my library isn't using below dependency.
implementation 'androidx.preference:preference:1.1.1'
prcaen commentedon Sep 18, 2020
This issue occurs only in 1.1.3
mmobin789 commentedon Sep 18, 2020
@prcaen is there any updated version you are using ? Kindly suggest.
The library still says its last version at bintray is 1.1.3
prcaen commentedon Sep 18, 2020
We are using the 1.1.2
msmtech-maker commentedon Oct 6, 2020
same as above...
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/preference/PreferenceManager;
IgorGanapolsky commentedon Dec 2, 2020
The resolution is to add the following dependency:
implementation 'androidx.preference:preference-ktx:1.1.1'ledlie commentedon Apr 29, 2021
I could be wrong here, but it looks like VendorIdentifier is only used by BackgroundReporter. So if you are not interested in using background reporting, then the code could be slightly re-written to avoid this additional dependency. Only if background reporting is enabled do you need to persist TRUSTKIT_VENDOR_ID. As the code is now, everyone has to save this whether or not they want to.