Android崩溃 – 无法获得提供商

Android崩溃 – 无法获得提供商,第1张

概述我不知所措.我一直在崩溃.之前曾问过类似的问题,但我没有犯同样的错误.这是我的清单:      <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="15" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" 我不知所措.我一直在崩溃.之前曾问过类似的问题,但我没有犯同样的错误.这是我的清单:
    

<uses-sdk    androID:minSdkVersion="11"    androID:targetSdkVersion="15" /><uses-permission androID:name="androID.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission androID:name="androID.permission.WAKE_LOCK"/><application    androID:icon="@drawable/ic_launcher"    androID:label="@string/app_name"    androID:theme="@style/Apptheme" >    <activity        androID:name=".ReminderListActivity"        androID:label="@string/Title_activity_reminder_List" >        <intent-filter>            <action androID:name="androID.intent.action.MAIN" />            <category androID:name="androID.intent.category.LAUNCHER" />        </intent-filter>    </activity>    <activity        androID:name=".ReminderEditactivity"        androID:label="@string/Title_activity_reminder_edit" >    </activity>    <provIDer         androID:name=".ReminderListProvIDer"         androID:authoritIEs="com.corsair.androID.taskreminder.ReminderListProvIDer" >                </provIDer></application>

如您所见,我拥有完全合格的权限.我在代码中声明了一个常量用于权限(并在我创建Uri时使用它:

public static final String AUTHORITY = "com.corsair.androID.taskreminder.ReminderListProvIDer";// basic database info for creationpublic static final String DATABASE_name = "reminders.db";public static final String DATABASE_table_name = "reminders";public static final int DATABASE_VERSION = 1;private ReminderListProvIDerMetaData() {}// inner class describing the Reminders table// by implementing BaseColumns,we automatically get the _ID column// which is necessary for showing the DB contents in a ListVIEwpublic static final class ReminderstableMetaData implements BaseColumns {    private ReminderstableMetaData() {    }    public static final String table_name = "reminders";    // uri and MIME type deFinitions    // info for database access    // the content URI is the authority prefixed with "content://"    public static final String BASE_PATH = "reminders";    public static final Uri CONTENT_URI = Uri.parse("content://"            + AUTHORITY + "/" + BASE_PATH);

这是我的logcat:

08-01 18:11:10.111: I/dalvikvm(1150): threadID=3: reacting to signal 3    08-01 18:11:10.141: I/dalvikvm(1150): Wrote stack traces to '/data/anr/traces.txt'    08-01 18:11:10.481: I/dalvikvm(1150): threadID=3: reacting to signal 3    08-01 18:11:10.694: I/dalvikvm(1150): Wrote stack traces to '/data/anr/traces.txt'    08-01 18:11:11.951: I/Process(1150): Sending signal. PID: 1150 SIG: 9    08-01 18:12:50.231: I/dalvikvm(1196): threadID=3: reacting to signal 3    08-01 18:12:50.661: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'    08-01 18:12:50.671: I/dalvikvm(1196): threadID=3: reacting to signal 3    08-01 18:12:50.801: I/ActivityThread(1196): Pub                                 com.corsair.androID.taskreminder.ReminderListProvIDer: com.corsair.androID.taskreminder.ReminderListProvIDer    08-01 18:12:50.833: D/ReminderProvIDer(1196): main oncreate called    08-01 18:12:50.851: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'    08-01 18:12:50.871: D/ReminderProvIDer(1196): inner oncreate called    08-01 18:12:50.893: D/AndroIDRuntime(1196): Shutting down VM    08-01 18:12:50.893: W/dalvikvm(1196): threadID=1: thread exiting with uncaught exception (group=0x409c01f8)    08-01 18:12:50.911: E/AndroIDRuntime(1196): FATAL EXCEPTION: main    08-01 18:12:50.911: E/AndroIDRuntime(1196): java.lang.RuntimeException: Unable to get provIDer com.corsair.androID.taskreminder.ReminderListProvIDer: java.lang.NullPointerException    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread.installProvIDer(ActivityThread.java:4240)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread.installContentProvIDers(ActivityThread.java:3992)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread.handleBindApplication(ActivityThread.java:3946)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread.access00(ActivityThread.java:123)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.os.Handler.dispatchMessage(Handler.java:99)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.os.Looper.loop(Looper.java:137)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread.main(ActivityThread.java:4424)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at java.lang.reflect.Method.invokeNative(Native Method)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at java.lang.reflect.Method.invoke(Method.java:511)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:551)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at dalvik.system.NativeStart.main(Native Method)    08-01 18:12:50.911: E/AndroIDRuntime(1196): Caused by: java.lang.NullPointerException    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at com.corsair.androID.taskreminder.ReminderListProvIDer$DatabaseHelper.onCreate(ReminderListProvIDer.java:75)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at com.corsair.androID.taskreminder.ReminderListProvIDer.onCreate(ReminderListProvIDer.java:102)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.content.ContentProvIDer.attachInfo(ContentProvIDer.java:944)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     at androID.app.ActivityThread.installProvIDer(ActivityThread.java:4237)    08-01 18:12:50.911: E/AndroIDRuntime(1196):     ... 12 more    08-01 18:12:51.241: I/dalvikvm(1196): threadID=3: reacting to signal 3    08-01 18:12:51.291: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'    08-01 18:12:51.541: I/dalvikvm(1196): threadID=3: reacting to signal 3    08-01 18:12:51.601: I/dalvikvm(1196): Wrote stack traces to '/data/anr/traces.txt'    08-01 18:12:58.262: I/Process(1196): Sending signal. PID: 1196 SIG: 9

这是第75行(在logcat中引用):

@OverrIDepublic voID onCreate(sqliteDatabase db) {Log.d(TAG,"inner oncreate called");db.execsql(ReminderstableMetaData.DATABASE_CREATE_SCHEMA);}

这是DATABASE_CREATE_SCHEMA:

public static final String DATABASE_CREATE_SCHEMA = "create table "+ DATABASE_table_name + " (" + ReminderstableMetaData._ID+ " integer primary key autoincrement," + REMINDER_Title+ " text not null," + REMINDER_BODY + " text not null,"+ REMINDER_DATE_TIME + " text not null" + ");";

这是我的ContentProvIDer的onCreate():

// database helper member variableprivate DatabaseHelper mOpenHelper;private sqliteDatabase db;// component creation callback@OverrIDepublic boolean onCreate() {Log.d(TAG,"main oncreate called");mOpenHelper = new DatabaseHelper(getContext());mOpenHelper.onCreate(db);return true;}

这是我的DataBaseHelper的构造函数:

// this class helps open,create,and upgrade the databaseprivate static class DatabaseHelper extends sqliteOpenHelper {public DatabaseHelper(Context context) {super(context,ReminderListProvIDerMetaData.DATABASE_name,null,ReminderListProvIDerMetaData.DATABASE_VERSION);}

真的在我的智慧结束这里.谢谢你的帮助.

解决方法 我想我在ContentProvIDer中看到了问题,我的评论详细说明了这些变化:

public boolean onCreate() {    Log.d(TAG,"main oncreate called");    mOpenHelper = new DatabaseHelper(getContext());    /* Remove this line next line:     *   1) db is null     *   2) DatabaseHelper's constructor already silently calls this     */    //mOpenHelper.onCreate(db);    return true;}
总结

以上是内存溢出为你收集整理的Android崩溃 – 无法获得提供商全部内容,希望文章能够帮你解决Android崩溃 – 无法获得提供商所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存