Asked Oct 5th, 2018 6:18 AM 134 0 1
  • 134 0 1
0

Xóa Cookie trong android

Share
  • 134 0 1

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

Oct 5th, 2018 6:25 AM

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

0
| Reply
Share
Oct 5th, 2018 6:29 AM

@vuongthai95 cảm ơn bạn. Mình đã chỉnh lại 😦(

0
| Reply
Share
Oct 5th, 2018 6:32 AM

@ductuandt3 bạn thêm cả tên ngôn ngữ java bên cạnh dấu ``` đầu tiên đi bạn

0
| Reply
Share

1 ANSWERS


Answered Oct 5th, 2018 2:03 PM
Accepted
+3

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()
        }
Share