1

多くのユーザーがコンテンツ記述子のインスタンス化中にNullPointerException問題に直面しています。ContentDescriptorがインスタンス化中にNullPointerExceptionをスローしています

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.content.UriMatcher.mText' on a null object reference 
     at android.content.UriMatcher.addURI(UriMatcher.java:186) 
     at com.getsuperapp.chat.db.ContentDescriptor.getUriMatcher(SourceFile:25) 
     at com.getsuperapp.chat.db.DatabaseProvider.query(SourceFile:33) 
     at android.content.ContentProvider.query(ContentProvider.java:1017) 
     at android.content.ContentProvider$Transport.query(ContentProvider.java:238) 
     at android.content.ContentResolver.query(ContentResolver.java:497) 
     at android.content.ContentResolver.query(ContentResolver.java:439) 

hereのデバイスと環境のセットが見つかります。

ContentDescriptorファイルには、任意のより詳細な情報が必要な場合は、私に教えてください

/** 
* A few constants from other classes used in the file 
* 
* from UserTable.java 
* public static final String PATH = "user_table"; 
* public static final int PATH_TOKEN = 10; 
*/ 
public class ContentDescriptor { 

    private static UriMatcher URI_MATCHER = null; 
    private static Uri BASE_URI = null; 

    public static UriMatcher getUriMatcher(Context appContext) { 

     String AUTHORITY = appContext.getPackageName() + ".quickblox"; 

     if (URI_MATCHER == null) { 
      URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH); 
//The line below is throwing the exception. 
      URI_MATCHER.addURI(AUTHORITY, UserTable.PATH, UserTable.PATH_TOKEN); 
      URI_MATCHER.addURI(AUTHORITY, DialogTable.PATH, DialogTable.PATH_TOKEN); 
      URI_MATCHER.addURI(AUTHORITY, MessageTable.PATH, MessageTable.PATH_TOKEN); 
      URI_MATCHER.addURI(AUTHORITY, ChatInfoTable.PATH, ChatInfoTable.PATH_TOKEN); 
     } 
     return URI_MATCHER; 
    } 

    public static Uri getBaseUri(Context appContext) { 
     String AUTHORITY = appContext.getPackageName() + ".quickblox"; 
     if (BASE_URI == null) { 
      BASE_URI = Uri.parse("content://" + AUTHORITY); 
     } 
     return BASE_URI; 
    } 

} 

です。誰も私にこれについてのいくつかの可視性を提供することはできますか?私は私の最後にクラッシュを再現することができません。

EDIT

Guysは読まなくても、他のNPEのカテゴリにこれをブラッシング止めます。多くのデバイスで問題なく動作します。初期化パラメータは定数です。クラッシュがコード内でコメントされている行。

+0

[NullPointerExceptionとは何ですか?それを修正するにはどうすればいいですか?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) – Jens

+0

ありがとうございますが、実際にはそうではありません。この問題は、aospのコンテンツ記述子に埋め込まれています。私はなぜこれが本当に起こるかについていくつかの洞察をしたいと思います。コードを読み取ると、インスタンス化は定数に渡され、問題は実際に入力ではない – humblerookie

+0

モデルクラスの静的フィールド(PATHまたはPATH_TOKEN)の1つがnullになります。どこにも変更されていないことを確認してください。また、これらのフィールドにgetter/setterを使用することもできます。 – Shaishav

答えて

1

AUTHORITY、PATHおよびPATH_TOKENの値は何ですか?アプリで実行されている値とAndroidのバージョンによっては、bug fixed in UriMatcherに該当する可能性があります。私はこれがあなたが掘り出し始める場所だと思います。また、デベロッパーコンソールやバグ報告ライブラリの王様からバグ報告を受け取りましたか?はいの場合、どのAndroidバージョンに共通のレポートがありますか?失敗を再現するのに役立つかもしれません。または、さまざまなバージョンのデバイス/エミュレータを大量に取得し、手動で取得してみてください。

+0

すべてのパスのトークンへのリンクです。 http://pastie.org/private/f3pzxsjh331kgiciaa2vw 私は私のクラッシュログのためのファブリックを使用し、クラッシュが本当に最近、それはあまりにも http://crashes.to/s/ Nexus 5の上で起こっている、非常に多様なデバイスを上起こります3297e6797ca。 私はこれについてgoogleで問題を提起しましたが、まだ割り当てられていません。 https://code.google.com/p/android/issues/detail?id=216791 – humblerookie

+0

残念ながら、ロリポップからマシュマロまでのアンドロイドバージョンでは、さまざまなデバイスで共通することはありません(5.0.1〜 6.0.1)。リンクのために感謝の荷物は、私が始めるのを助ける:) – humblerookie

+0

私のパスに '\'文字を持っていないので、修正が私のために働くとは思わない – humblerookie

関連する問題