0

program1 をコピーして program2 に貼り付けます

AndroidManifest.xml:</p>

プログラム1:</p>

<provider android:name="com.coperator.service.PreferenceProvider"
                    android:authorities="com.coperator.prefs" />

プログラム 2:

<provider android:name="com.coperator.service.PreferenceProvider"
                    android:authorities="com.program2.coperator.prefs" />

ジャバコード:

  program1: public static final String AUTHORITY= "com.coperator.prefs";
  program2: public static final String AUTHORITY = "com.program2.coperator.prefs";

  public static final Uri RAZ_URI = Uri.parse(ContentResolver.SCHEME_CONTENT+ "://" +           AUTHORITY + "/" + RESET_TABLE_NAME);     
  Uri uri = SipConfigManager.RAZ_URI;
  resolver.update(uri, new ContentValues(), null, null);

最初に program1 を正常に実行すると、program2 を実行するとエラーが発生します。

04-19 11:05:05.965: E/ActivityThread(5197): Failed to find provider info for com.talkingoa.coperator.prefs
04-19 11:05:05.965: E/ActivityThread(5197): Failed to find provider info for com.talkingoa.coperator.prefs04-19 11:05:05.975: E/AndroidRuntime(5197): FATAL EXCEPTION: main
04-19 11:05:05.975: E/AndroidRuntime(5197): java.lang.RuntimeException: Unable to create service com.coperator.service.SipService: java.lang.IllegalArgumentException: Unknown URI content://com.program2.coperator.prefs/raz
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.app.ActivityThread.handleCreateService(ActivityThread.java:2323)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.app.ActivityThread.access$2500(ActivityThread.java:135)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1118)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.os.Looper.loop(Looper.java:150)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.app.ActivityThread.main(ActivityThread.java:4385)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at java.lang.reflect.Method.invokeNative(Native Method)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at java.lang.reflect.Method.invoke(Method.java:507)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at dalvik.system.NativeStart.main(Native Method)
04-19 11:05:05.975: E/AndroidRuntime(5197): Caused by: java.lang.IllegalArgumentException: Unknown URI content://com.talkingoa.coperator.prefs/raz
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.content.ContentResolver.update(ContentResolver.java:722)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at com.coperator.utils.PreferencesProviderWrapper.resetAllDefaultValues(PreferencesProviderWrapper.java:53)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at com.coperator.service.SipService.onCreate(SipService.java:798)
04-19 11:05:05.975: E/AndroidRuntime(5197):  at android.app.ActivityThread.handleCreateService(ActivityThread.java:2309)
04-19 11:05:05.975: E/AndroidRuntime(5197):  ... 10 more

どうしてダメだったのかわからない

4

1 に答える 1

0

アプリの開発中に同じエラーに直面していました。私にとっては、コンテンツ プロバイダーを呼び出すときに正しい Uri を使用するだけでエラーが解決されました。

私のコンテンツ プロバイダーでは、いくつかの Uri を追加しました。次に例を示します。

String AUTHORITY = "com.package.example";
static Uri CONTENT_URI = Uri.parse(AUTHORITY);

(...)

URIMatcher.addURI(AUTHORITY, "entry", 1);

その後、ContentProvider を呼び出すときに、

getContentResolver().getType(Uri.withAppendedPath(MyContentProvider.CONTENT_URI, "entry/1"));

そして、問題は再び発生しませんでした。

于 2013-05-28T00:11:00.937 に答える