Xóa Cookie trong android
chào mọi người. Mình có 1 vấn đề mong mọi người chỉ giúp. Mình đang sử dụng CookieManager cua android.webkit để xóa cookie của android. Đây là đoạn code mình:
public static void clearCookies(Context context) {
@SuppressWarnings("unused")
CookieSyncManager cookieSyncMngr =
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
}
Nhưng khi thực thi thì đoạn code này không thực hiện và show ra log: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.TracingController" on path: DexPathList[[zip file "/data/app/com.android.chrome-1/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-1/lib/arm64, /data/app/com.android.chrome-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]]
Ai đã từng gặp lỗi này chỉ mình cách giải quyết với. Mình cảm ơn
1 CÂU TRẢ LỜI
Bạn có thể cung cấp rõ thêm version hệ điều hành máy mà bạn test và trình duyệt trên máy của bạn (chrome , firefox,...) được không? Lỗi này mình đoán có thể do:
- File build apk của bạn bị lỗi (cần rebuild lại thử xem sao) vì mình thấy có liên quan đến file dex
on path: DexPathList
- Chromium có vấn đề, vì webview trên một số máy Android nếu không support chromium có khả năng gây ra lỗi
Ngoài ra, CookieSyncManager đã bị deprecated, quá trình sync cookie đã được android làm tự động từ API >= 22, bạn nên viết lại đoạn code trên như sau:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
CookieManager.getInstance().removeAllCookies(null)
CookieManager.getInstance().flush()
} else {
val cookieSyncMngr = CookieSyncManager.createInstance(context)
cookieSyncMngr.startSync()
val cookieManager = CookieManager.getInstance()
cookieManager.removeAllCookie()
cookieManager.removeSessionCookie()
cookieSyncMngr.stopSync()
cookieSyncMngr.sync()
}
bạn nên đưa phần code vào trong cặp dấu ```ten-ngon-ngu(android, java, ...) ``` để format code dễ nhìn hơn
@vuongthai95 cảm ơn bạn. Mình đã chỉnh lại (
@ductuandt3 bạn thêm cả tên ngôn ngữ java bên cạnh dấu ``` đầu tiên đi bạn