2017-04-11 26 views
3

我添加了用於驗證手機號碼的Fabric Digit套件。手機號碼驗證成功,但當我點擊驗證按鈕應用程序崩潰,當我重新打開應用程序,數字會話創建成功,我在很多應用程序中使用數字,但沒有得到什麼問題。可能是特定版本或其他?面料數字在驗證後在回調中崩潰

崩潰日誌:

#0. Crashed: IntentService[ATTRIBUTABLE_INVITE_DOWNLOAD_WORKER]: 0 0 0x0000000000000000 
 
     at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:772) 
 
     at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:800) 
 
     at com.digits.sdk.android.DigitsApiClientManager.getUserAuthClient(DigitsApiClientManager.java:53) 
 
     at com.digits.sdk.android.AttributableInviteDownloadService.onHandleIntent(AttributableInviteDownloadService.java:55) 
 
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:66) 
 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
 
     at android.os.Looper.loop(Looper.java:148) 
 
     at android.os.HandlerThread.run(HandlerThread.java:61) 
 

 
-- 
 

 
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference 
 
     at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:772) 
 
     at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:800) 
 
     at com.digits.sdk.android.DigitsApiClientManager.getUserAuthClient(DigitsApiClientManager.java:53) 
 
     at com.digits.sdk.android.AttributableInviteDownloadService.onHandleIntent(AttributableInviteDownloadService.java:55) 
 
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:66) 
 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
 
     at android.os.Looper.loop(Looper.java:148) 
 
     at android.os.HandlerThread.run(HandlerThread.java:61)

更詳細的日誌從Crashalytics添加here在應用程序中實現

代碼:

的onCreate

authCallback = new AuthCallback() { 
 
        @Override 
 
        public void success(DigitsSession session, String phoneNumber) { 
 
         Log.d("msg", "session : " + session.toString() + " " + phoneNumber); 
 
         MOBILE_NO = phoneNumber; 
 
         storeUserData.setString(Constants.USER_MOBILE, phoneNumber); 
 
         Digits.clearActiveSession(); 
 
         startActivity(new Intent(activity, RegisterActivity.class) 
 
           .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); 
 
        } 
 

 
        @Override 
 
        public void failure(DigitsException error) { 
 
         error.printStackTrace(); 
 
        } 
 
       };

覈查

binding.authButton.setCallback(authCallback); 
 
          binding.authButton.setAuthTheme(R.style.CustomDigitsTheme); 
 

 
          AuthConfig.Builder authConfigBuilder = new AuthConfig.Builder() 
 
            
 
            .withAuthCallBack(authCallback) 
 
            .withPhoneNumber("+91"); 
 

 
          Digits.authenticate(authConfigBuilder.build());

+0

我有同樣的問題。你解決了嗎? – malhobayyeb

+0

仍然沒有得到相同的問題,但沒有在所有設備上。 –

+0

你有沒有試過我的答案? – malhobayyeb

回答

1

你可以試試下面的代碼,

DigitsAuthButton digitsButton; 
AuthCallback authcallback; 
digitsButton = (DigitsAuthButton) view.findViewById(R.id.auth_button); 
     digitsButton.setAuthTheme(R.style.CustomDigitsTheme); 
     authcallback = new AuthCallback() { 
      @Override 
      public void success(DigitsSession session, String phoneNumber) { 
       edtMobNumber.setText(phoneNumber); 
      } 

      @Override 
      public void failure(DigitsException exception) { 

       exception.printStackTrace(); 

      } 
     }; 
     digitsButton.setCallback(authcallback); 
//launching digits activity on click of edit text 
edtMobNumber.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Digits.clearActiveSession(); 
     digitsButton.performClick(); 
    } 
}); 

讓我知道它是否適合你。

0

我有同樣的問題,發現我正在清除回調方法內的活動會話(註銷)。

刪除此行:

Digits.clearActiveSession(); 

或者對於我來說,我刪除這一行:

Digits.logout();