Frage

Ich bin nach dem SampleSyncAdapter und beim Start scheint es, dass mein SyncAdapter nicht richtig konfiguriert ist. Es meldet einen Fehler versucht, seine Meta-Daten zu laden. Wie kann ich das Problem zu isolieren? Sie können die anderen Konten im System sehen, die korrekt registrieren.

Logcat:

12-21 17:10:50.667 W/PackageManager(  121): Unable to load service info ResolveInfo{4605dcd0 com.myapp.syncadapter.MySyncAdapter p=0 o=0 m=0x108000}
12-21 17:10:50.667 W/PackageManager(  121): org.xmlpull.v1.XmlPullParserException: No android.content.SyncAdapter meta-data
12-21 17:10:50.667 W/PackageManager(  121):     at android.content.pm.RegisteredServicesCache.parseServiceInfo(RegisteredServicesCache.java:391)
12-21 17:10:50.667 W/PackageManager(  121):     at android.content.pm.RegisteredServicesCache.generateServicesMap(RegisteredServicesCache.java:260)
12-21 17:10:50.667 W/PackageManager(  121):     at android.content.pm.RegisteredServicesCache$1.onReceive(RegisteredServicesCache.java:110)
12-21 17:10:50.667 W/PackageManager(  121):     at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:892)
12-21 17:10:50.667 W/PackageManager(  121):     at android.os.Handler.handleCallback(Handler.java:587)
12-21 17:10:50.667 W/PackageManager(  121):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-21 17:10:50.667 W/PackageManager(  121):     at android.os.Looper.loop(Looper.java:123)
12-21 17:10:50.667 W/PackageManager(  121):     at com.android.server.ServerThread.run(SystemServer.java:570)
12-21 17:10:50.747 D/Sources (  294): Creating external source for type=com.skype.contacts.sync, packageName=com.skype.raider
12-21 17:10:50.747 D/Sources (  294): Creating external source for type=com.twitter.android.auth.login, packageName=com.twitter.android
12-21 17:10:50.747 D/Sources (  294): Creating external source for type=com.example.android.samplesync, packageName=com.example.android.samplesync
12-21 17:10:50.747 W/PackageManager(  121): Unable to load service info ResolveInfo{460504b0 com.myapp.syncadapter.MySyncAdapter p=0 o=0 m=0x108000}
12-21 17:10:50.747 W/PackageManager(  121): org.xmlpull.v1.XmlPullParserException: No android.content.SyncAdapter meta-data
12-21 17:10:50.747 W/PackageManager(  121):     at android.content.pm.RegisteredServicesCache.parseServiceInfo(RegisteredServicesCache.java:391)
12-21 17:10:50.747 W/PackageManager(  121):     at android.content.pm.RegisteredServicesCache.generateServicesMap(RegisteredServicesCache.java:260)
12-21 17:10:50.747 W/PackageManager(  121):     at android.content.pm.RegisteredServicesCache$1.onReceive(RegisteredServicesCache.java:110)
12-21 17:10:50.747 W/PackageManager(  121):     at android.app.ActivityThread$PackageInfo$ReceiverDispatcher$Args.run(ActivityThread.java:892)
12-21 17:10:50.747 W/PackageManager(  121):     at android.os.Handler.handleCallback(Handler.java:587)
12-21 17:10:50.747 W/PackageManager(  121):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-21 17:10:50.747 W/PackageManager(  121):     at android.os.Looper.loop(Looper.java:123)
12-21 17:10:50.747 W/PackageManager(  121):     at com.android.server.ServerThread.run(SystemServer.java:570)

Auch Anmerkung, ich habe versucht, Kraft Fehlkonfiguration zu sehen, ob ich den Fehler in einer Weise verändern könnte, dass meine Fehler hinweisen würde. Leider sind die meisten der Fehlkonfigurationen durch den (Vor-) Compiler gefangen werden.

ich es geschafft, diese logcat Eintrag nach einer Deinstallation finden / installieren das entspricht meinem Meta-Datenknoten innerhalb des AndroidManifest.xml für den Diensteintrag des Sync-Adapter. Es kann einen sehr wichtigen Hinweis sein, dass ich zu untersuchen.

12-21 18:46:36.026 D/AndroidRuntime(28641): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
12-21 18:46:36.026 D/AndroidRuntime(28641): CheckJNI is OFF
12-21 18:46:36.106 D/AndroidRuntime(28641): --- registering native functions ---
12-21 18:46:36.836 D/PackageParser(  121): Scanning package: /data/app/vmdl13904.tmp
12-21 18:46:36.856 W/PackageParser(  121): Unknown element under <intent-filter>: meta-data at /data/app/vmdl13904.tmp Binary XML file line #254
12-21 18:46:36.856 W/PackageParser(  121): Unknown element under <intent-filter>: meta-data at /data/app/vmdl13904.tmp Binary XML file line #257
12-21 18:46:37.166 D/PackageManager(  121): Scanning package com.myapp
War es hilfreich?

Lösung

Ich fand es! Sicher genug, dass Start-up-Nachricht war der Schlüssel, den Fehler zu finden. Ich hatte einen Fehler in meinem Manifest. Ich habe den Meta-Datenknoten innerhalb der Intent-Filter des Sync-Adapters. Deshalb wurden meine Meta-Daten in den Intent-Filter ausgeblendet. Unnötig zu sagen, könnte der Dienst nicht registriert werden.

Ich bin jetzt auf meine nächsten Fehler:)

Ich hoffe, diese Sitzung ist nützlich für andere.

Andere Tipps

Eine andere Möglichkeit, diese Ausnahme und die Nachricht zu erhalten, ist der Name in den Metadaten in Ihrem Manifest falsch schreiben. Zum Beispiel:

<meta-data
            android:name="android.cccontent.SyncAdapter"
            android:resource="@xml/syncadapter" />

Dabei gilt es sollte sein:

<meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter" />

Daraus ergibt sich die " Keine android.content.SyncAdapter Meta-Daten ", weil es hatte "Android. ccc ontent.SyncAdapter" statt. Eine subtilere Beispiel wäre "Androi d: c ontent.SyncAdapter". Beide werden die Ausnahme werfen:

org.xmlpull.v1.XmlPullParserException: No android.content.SyncAdapter meta-data
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top