8
votes

Déclarant le fournisseur de contenu

C'est ma première fois à l'aide d'un fournisseur de contenu, mais j'ai suivi le développeur Docs mais quand j'exécute le programme, il me dit Échec de la recherche d'informations sur le fournisseur

Voici mon manifeste xxx

et mon Fournisseur de contenu xxx

}

Je ne sais pas ce que j'ai fait de mal?


0 commentaires

4 Réponses :


16
votes

fournisseur doit être dans la balise d'application.

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tyczj.bowling"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="11" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

        <activity android:name="Tabs">
            <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
        </activity>

        <activity android:name="BowlersList"></activity>
    <provider android:name="com.tyczj.bowling.BowlersDB"
        android:authorities="com.tyczj.bowling.bowlersdb">
    </provider>
    </application>



</manifest>


2 commentaires

OK a fait cela, ne recevez pas l'erreur "Cant-ce que le fournisseur de fournisseur", mais maintenant, il me dit "_ID" n'existe pas ?


Si vous placez la balise de fournisseur en dehors de la balise d'application, elle échoue dans Kit Kat, mais fonctionne partout ailleurs ... à l'intérieur de la balise d'application se bloque dans KK.



1
votes

Vous avez cette erreur car vous définissez votre fournisseur en dehors de la balise d'application. Donc, veuillez définir votre fournisseur à l'intérieur de l'application.

<application
       ........

    <provider 
        android:name="com.tyczj.bowling.BowlersDB"
        android:authorities="com.tyczj.bowling.bowlersdb">
    </provider>
    </application>


0 commentaires

0
votes

C'est un bon exemple de la raison pour laquelle utiliser l'éditeur manifeste Android à Eclipse. Il met de tels éléments / composants dans leur emplacement syntaxiquement correct, il n'est donc pas nécessaire de s'inquiéter de cette question. Une autre façon de la regarder: envisagez d'utiliser l'éditeur manifeste au début (et tout à fait) pour confirmer l'exactitude de votre manifeste.


0 commentaires

3
votes

Vous ne devez pas appeler db = dbhelper.getwritacratabase (); dans le fichier de contenu surCréate. Ceci est pour la raison indiquée dans SQLITEOPENHELPER Documentation pour GetReadAfableAbase et GEWRITABLEDABASEABASE :

Comme GetWRITratabase, cette méthode peut prendre beaucoup de temps à revenir, Donc, vous ne devriez pas l'appeler du fil principal de l'application, y compris de contenuprovider.oncreate ().

Tenez-vous une référence à l'instance SQLITEOPENHELPER et appelez GetWRITRABLEDABASEABASE / GETREADABLEDABASE, selon les méthodes requises dans la requête / INSERT / DELETE / Mettre à jour les méthodes appelées asynchrone si vous utilisez des chargeurs.

Désolé, cela n'est pas ciblé directement à la question, mais c'est quelque chose que j'ai vu partout dans les échantillons de code.


0 commentaires