2013-10-13 2 views
0

나는 웹뷰에서 쿠키를 허용하도록 내 응용 프로그램에서 다음 코드를 사용java.lang.NoSuchMethodError : android.webkit.CookieManager.setAcceptFileSchemeCookies는

CookieSyncManager.createInstance(this); 
CookieSyncManager.getInstance().startSync(); 
CookieManager.setAcceptFileSchemeCookies(true); 
CookieManager.getInstance().setAcceptCookie(true); 

이 잘 실행 안드로이드 4.x의에서이 작업을 실행합니다. 그러나 나는 또한 2.3.6을 사용하여 전화를 테스트하고 거기에 다음과 같은 스택 추적과 충돌 :

10-13 22:34:20.519: E/AndroidRuntime(2371): FATAL EXCEPTION: main 
10-13 22:34:20.519: E/AndroidRuntime(2371): java.lang.NoSuchMethodError: android.webkit.CookieManager.setAcceptFileSchemeCookies 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at de.fblike.facebook.FacebookActivity.onCreate(FacebookActivity.java:28) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.os.Looper.loop(Looper.java:130) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at java.lang.reflect.Method.invoke(Method.java:507) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
10-13 22:34:20.519: E/AndroidRuntime(2371):  at dalvik.system.NativeStart.main(Native Method) 

그래서 나 자신을 부탁 해요 :이 복구 할 수 있습니까? 2.3.6이이 방법을 지원하지 않는 것처럼 보입니다.

답변

0

설명서를 읽으면이 방법이 API12 (Android 3.1)에서 도입 된 것을 알 수 있습니다. minSdk 버전을 늘려야합니다.

플랫폼/안드로이드/CordovaLib/SRC/조직/아파치/코르도바/엔진/SystemCookieManager.java :

  cookieManager = CookieManager.getInstance(); 

      //REALLY? Nobody has seen this UNTIL NOW? 
-  cookieManager.setAcceptFileSchemeCookies(true); 

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
+   cookieManager.setAcceptFileSchemeCookies(true); 
       cookieManager.setAcceptThirdPartyCookies(webView, true); 
      } 
     } 

http://developer.android.com/reference/android/webkit/CookieManager.html#setAcceptFileSchemeCookies(boolean)

+0

그게 수정 되었습니까? – Simon

+0

하지만 코드를 작성하는 다른 방법이 있어야합니다. – toom

+0

소스를 검사하여 거기에서 가져올 수 있습니까? – Simon

1

나는 결국이 패치로 그것을 해결, 같은 문제가 있었다

고통 스러웠습니다 ..

관련 문제