Chức năng webview android của tôi onPageFinished
được gọi hai lần. Tôi không biết tại sao, nhưng nó hoạt động tốt trên Android 2.2 nhưng khi tôi nâng cấp nó lên 4+ nó không hoạt động. Mã được đính kèm dưới đâyChức năng webview trên Android được bậtPagefinished được gọi hai lần
Mã
@Override
public void onPageFinished(WebView view, String url) {
if (url.startsWith(MobileConstants.PUSHPIN_CALLBACK_URL)) {
if (url.indexOf("code=")!=-1) {
String code = url.substring(url.indexOf("code=")+5);
Log.i ("code", code);
if (code != null && !code.equals("") ){
view.setVisibility(View.GONE);
Token accessToken = service.getAccessToken(null, new Verifier(code));
Log.i("access_token",accessToken.getToken());
SharedPreferences settings = getSharedPreferences("access_token" , 0);
SharedPreferences.Editor editor = settings.edit();
if(accessToken.getToken() != null)
editor.putString("access_token", accessToken.getToken());
Intent map3 = new Intent(OAuthAccessTokenActivity.this, Dashboard.class);
map3.putExtra("access_token", accessToken.getToken());
startActivity(map3);
}
} else if (url.indexOf("error=")!=-1) {
view.setVisibility(View.INVISIBLE);
}
}
System.out.println("onPageFinished : " + url);
}
Log
07-22 14:29:50.523: E/AndroidRuntime(1186): FATAL EXCEPTION: main
07-22 14:29:50.523: E/AndroidRuntime(1186): java.lang.NullPointerException
07-22 14:29:50.523: E/AndroidRuntime(1186): at com.facebook.android.OAuthAccessTokenActivity$1.onPageFinished(OAuthAccessTokenActivity.java:83)
07-22 14:29:50.523: E/AndroidRuntime(1186): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:327)
07-22 14:29:50.523: E/AndroidRuntime(1186): at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 14:29:50.523: E/AndroidRuntime(1186): at android.os.Looper.loop(Looper.java:137)
07-22 14:29:50.523: E/AndroidRuntime(1186): at android.app.ActivityThread.main(ActivityThread.java:4745)
07-22 14:29:50.523: E/AndroidRuntime(1186): at java.lang.reflect.Method.invokeNative(Native Method)
07-22 14:29:50.523: E/AndroidRuntime(1186): at java.lang.reflect.Method.invoke(Method.java:511)
07-22 14:29:50.523: E/AndroidRuntime(1186): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-22 14:29:50.523: E/AndroidRuntime(1186): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-22 14:29:50.523: E/AndroidRuntime(1186): at dalvik.system.NativeStart.main(Native Method)
Dòng nào là dòng 83, làm cho con trỏ null bị lừa? – charlypu
Mã thông báo truy cậpToken = service.getAccessToken (null, Bộ xác minh mới (mã)); vấn đề là khi tôi nhận được mã nhưng sau khi nhận được mã sau khi mọi thứ xảy ra, tôi nhận được mã thông báo truy cập nhưng sau đó lại gọi hàm này vào lúc này mã đã hết hạn và nó cho phép ngoại lệ con trỏ null – Muneeb
Tôi đã giải quyết được vấn đề tôi làm thế nào để trả lời nó? – Muneeb