2017-09-18 1 views
0

Vu le journal comme suit spécifique à Android que « O » 8 Google Pixel():Android O 8.0.0 Avoir problème et se bloque sur l'appel de synchronisation méthode de CookieSyncManager

Fatal Exception: java.lang.NullPointerException 
     at android.content.res.AssetManager.addAssetPathNative(AssetManager.java) 
     at android.content.res.AssetManager.addAssetPathInternal(AssetManager.java:689) 
     at android.content.res.AssetManager.addAssetPathAsSharedLibrary(AssetManager.java:684) 
     at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:407) 
     at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:211) 
     at android.webkit.CookieManager.getInstance(CookieManager.java:39) 
     at android.webkit.CookieSyncManager.sync(CookieSyncManager.java:112) 

Il est intéressant de la question est là sur un appelez faire

android.webkit.CookieSyncManager cookieSyncManager = android.webkit.CookieSyncManager.createInstance(context); 
     cookieSyncManager.sync(); 

Selon le document https://developer.android.com/reference/android/webkit/CookieSyncManager.html l'appel à la synchronisation() est dépréciée et devrait appeler à rincer() à la place. mais la méthode est juste obsolète. d'avoir un contrôle interne avec le code de CookieSyncManager trouvé qu'il fait comme suit

/** 
    * sync() forces sync manager to sync now 
    * @deprecated Use {@link CookieManager#flush} instead. 
    */ 
    @Deprecated 
    public void sync() { 
     CookieManager.getInstance().flush(); 
    } 

intéressés de connaître la cause de cet échec comme Crashlytics montre un grand nombre d'accidents sur la même.

+0

Je pense que cookieSyncManager est nulle. Déboguez votre code et vérifiez cela. –

Répondre

0

Il semble que lorsque vous essayez de créer l'instance de classe, il échoue. En effet, ils ont changé la contructor instance de:

private CookieSyncManager() { 
     super("CookieSyncManager"); 
    } 

aussi:

private CookieSyncManager() { 
     super(null, null); 
    } 

c'est aussi la raison pour laquelle vous obtenez le NullPointerException