Domanda

Seguo il SampleSyncAdapter e all'avvio, sembra che il mio SyncAdapter non è configurato correttamente. Si segnala un errore nel tentativo di caricare i propri meta-dati. Come posso isolare il problema? Potete vedere le altri account nel sistema che registra correttamente.

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)

Inoltre nota, ho cercato di forza mis-configurazione per vedere se riuscivo a cambiare l'errore in un modo che sottolineare il mio difetto. Purtroppo, la maggior parte degli errori di configurazione vengono catturati dal (pre) compilatore.

Sono riuscito a trovare questa voce logcat dopo una disinstallazione / installazione che corrisponde al mio nodo di meta-dati all'interno del AndroidManifest.xml per voce del servizio Sync adattatore del. Potrebbe essere un indizio molto importante che sto studiando.

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
È stato utile?

Soluzione

ho trovato! Abbastanza sicuro, quel messaggio di start-up è stato chiave per trovare l'errore. Ho avuto un errore nel mio manifesto. Ho messo i nodi di meta-dati all'interno del intent-filtro dell'adattatore di sincronizzazione. Pertanto, i miei meta-dati sono stati nascosti all'interno del intent-filtro. Inutile dire che il servizio non poteva essere registrato.

Sono ora in poi per il mio prossimo errore:)

Spero che questa sessione è utile per gli altri.

Altri suggerimenti

Un altro modo per ottenere questa eccezione e il messaggio è quello di errori ortografici il nome nei metadati nel vostro manifesto. Per esempio:

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

dove dovrebbe essere:

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

Da qui la " No android.content.SyncAdapter meta-data " perché aveva "Android. ccc ontent.SyncAdapter" invece. Un esempio più sottile sarebbe "Androi D: c ontent.SyncAdapter". Entrambi questi generare l'eccezione:

org.xmlpull.v1.XmlPullParserException: No android.content.SyncAdapter meta-data
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top