Ich habe so ziemlich alles gelesen, was es hier in diesem Thema zu finden gibt, und komme nicht darüber hinweg.
Ich habe eine einfache App, die mit MainActivity
beginnt, meine Content Provider
ist korrekt in AndroidManifest.xml
definiert, die ContentProvider
Klasse scheint in Ordnung zu sein ... das wurde auf einem Nexus i9250 mit 4.3 und einem Asus getestet Memo Pad mit 4.2.1 sowie VDevices mit Jelly Bean. Die App läuft in jedem Fall und stürzt nicht ab. Das einzige, was LogCat
mir gibt, ist "Failed to find provider info for de.somename.provider"
an dem Punkt, an dem eines meiner Fragmente versucht, Content Provider
abzufragen und einen Cursor zu bekommen. Hier der Code:
AndroidManifest.xml
%Vor%%Vor%
hvkContentProvider.java
%Vor%}
HdwFragment.java
%Vor%}
Die Methode: insertSomeFunctions () die ich weggelassen habe, da es hier keinen Unterschied macht, werde ich so schnell wie möglich ein Kopfgeld geben. Wirklich müssen Sie dies erledigen.
Von der Referenzseite auf <provider>
: Link
Android: Behörden: ...... zu vermeiden Konflikte, Autorisierungsnamen sollten eine Java-ähnliche Namenskonvention verwenden (z. B. com.example.provider.cartoonprovider ). Normalerweise ist es das Name der ContentProvider-Unterklasse, die den Provider implementiert.
In Ihrem Fall sollte android:authorities
den Wert: de.somename.provider.hvkContentProvider
haben.
android: name: ...... Der Name der Klasse, die den Inhalt implementiert Provider, eine Unterklasse von ContentProvider. Dies sollte ein vollständig sein qualifizierter Klassenname (z. B. "com.beispiel.project.TransportationProvider"). Wie auch immer Kurzform, wenn das erste Zeichen des Namens ein Punkt ist, ist es an den Paketnamen angehängt, der im Element angegeben ist.
Wenn Sie also package
im manifest
-Tag von AndroidManifest.xml
definieren, stellen Sie sicher, dass hvkContentProvider
in diesem Paket ist. Ändern Sie andernfalls android:name=".hvkContentProvider"
in android:name="de.somename.hvk3.hvkContentProvider"
oder your.package.name.hvkContentProvider
Versuchen Sie, den vollständig qualifizierten Pfad in android:authorities
zu verwenden und dabei de.somename.provider
zu ersetzen.
mit de.somename.provider.hvkContentProvider
in, so dass es wie folgt aussieht.
Sie können diese
angebenTags und Links android android-contentprovider cursor