多くのユーザーがコンテンツ記述子のインスタンス化中に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のカテゴリにこれをブラッシング止めます。多くのデバイスで問題なく動作します。初期化パラメータは定数です。クラッシュがコード内でコメントされている行。
[NullPointerExceptionとは何ですか?それを修正するにはどうすればいいですか?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) – Jens
ありがとうございますが、実際にはそうではありません。この問題は、aospのコンテンツ記述子に埋め込まれています。私はなぜこれが本当に起こるかについていくつかの洞察をしたいと思います。コードを読み取ると、インスタンス化は定数に渡され、問題は実際に入力ではない – humblerookie
モデルクラスの静的フィールド(PATHまたはPATH_TOKEN)の1つがnullになります。どこにも変更されていないことを確認してください。また、これらのフィールドにgetter/setterを使用することもできます。 – Shaishav