为什么没有android.content.SyncAdapter元数据登记同步适配器? [英] Why No android.content.SyncAdapter meta-data registering sync-adapter?

查看:670
本文介绍了为什么没有android.content.SyncAdapter元数据登记同步适配器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我下面的SampleSyncAdapter并在启动时,看来我的SyncAdapter配置不正确。它报告试图加载其元数据的错误。我怎样才能找出问题?你可以看到在正确注册系统中的其他帐户。

logcat的:

  12-21 17:10:50.667 W /软件包管理系统(121):无法加载服务信息ResolveInfo {4605dcd0 com.myapp.syncadapter.MySyncAdapter P = 0°= 0 M = 0x108000}
12-21 17:10:50.667 W /软件包管理系统(121):org.xmlpull.v1.XmlPullParserException:无android.content.SyncAdapter元数据
12-21 17:10:50.667 W /软件包管理系统(121):在android.content.pm.RegisteredServicesCache.parseServiceInfo(RegisteredServicesCache.java:391)
12-21 17:10:50.667 W /软件包管理系统(121):在android.content.pm.RegisteredServicesCache.generateServicesMap(RegisteredServicesCache.java:260)
12-21 17:10:50.667 W /软件包管理系统(121):在android.content.pm.RegisteredServicesCache $ 1.onReceive(RegisteredServicesCache.java:110)
12-21 17:10:50.667 W /软件包管理系统(121):在android.app.ActivityThread $ PackageInfo $ ReceiverDispatcher $ Args.run(ActivityThread.java:892)
12-21 17:10:50.667 W /软件包管理系统(121):在android.os.Handler.handleCallback(Handler.java:587)
12-21 17:10:50.667 W /软件包管理系统(121):在android.os.Handler.dispatchMessage(Handler.java:92)
12-21 17:10:50.667 W /软件包管理系统(121):在android.os.Looper.loop(Looper.java:123)
12-21 17:10:50.667 W /软件包管理系统(121):在com.android.server.ServerThread.run(SystemServer.java:570)
12-21 17:10:50.747 D /源(294):创建类型的外部源= com.skype.contacts.sync,的packageName = com.skype.raider
12-21 17:10:50.747 D /源(294):创建类型的外部源= com.twitter.android.auth.login,的packageName = com.twitter.android
12-21 17:10:50.747 D /源(294):创建类型的外部源= com.example.android.samplesync,的packageName = com.example.android.samplesync
12-21 17:10:50.747 W /软件包管理系统(121):无法加载服务信息ResolveInfo {460504b0 com.myapp.syncadapter.MySyncAdapter P = 0°= 0 M = 0x108000}
12-21 17:10:50.747 W /软件包管理系统(121):org.xmlpull.v1.XmlPullParserException:无android.content.SyncAdapter元数据
12-21 17:10:50.747 W /软件包管理系统(121):在android.content.pm.RegisteredServicesCache.parseServiceInfo(RegisteredServicesCache.java:391)
12-21 17:10:50.747 W /软件包管理系统(121):在android.content.pm.RegisteredServicesCache.generateServicesMap(RegisteredServicesCache.java:260)
12-21 17:10:50.747 W /软件包管理系统(121):在android.content.pm.RegisteredServicesCache $ 1.onReceive(RegisteredServicesCache.java:110)
12-21 17:10:50.747 W /软件包管理系统(121):在android.app.ActivityThread $ PackageInfo $ ReceiverDispatcher $ Args.run(ActivityThread.java:892)
12-21 17:10:50.747 W /软件包管理系统(121):在android.os.Handler.handleCallback(Handler.java:587)
12-21 17:10:50.747 W /软件包管理系统(121):在android.os.Handler.dispatchMessage(Handler.java:92)
12-21 17:10:50.747 W /软件包管理系统(121):在android.os.Looper.loop(Looper.java:123)
12-21 17:10:50.747 W /软件包管理系统(121):在com.android.server.ServerThread.run(SystemServer.java:570)

另外请注意,我试图强迫错误配置,看看我是否能在某种程度上会指出我的缺点更改错误。不幸的是,大部分的错误配置的由(pre)的编译器捕获

我设法找到一个卸载后,这个logcat的入门/安装对应的同步适配器的服务项的Andr​​oidManifest.xml里面我的元数据节点。这可能是因为我调查一个非常重要的线索。

  12-21 18:46:36.026 D / AndroidRuntime(28641):GT;>>>>>>>>>>&GT ;>> AndroidRuntime START<<<<<<<<<<<<<<
12-21 18:46:36.026 D / AndroidRuntime(28641):CheckJNI为OFF
12-21 18:46:36.106 D / AndroidRuntime(28641):---注册本地函数---
12-21 18:46:36.836 D / PackageParser(121):扫描包:/data/app/vmdl13904.tmp
12-21 18:46:36.856 W / PackageParser(121):在&LT未知因素;意向滤光器&gt ;:元数据在/data/app/vmdl13904.tmp二进制XML文件中的行#254
12-21 18:46:36.856 W / PackageParser(121):在&LT未知因素;意向滤光器&gt ;:元数据在/data/app/vmdl13904.tmp二进制XML文件中的行#257
12-21 18:46:37.166 D /软件包管理系统(121):扫描包com.myapp


解决方案

我找到了!果然,刚起步的信息是关键,找出错误。我在我的清单中的错误。我把元数据节点同步适配器的意图过滤器内。因此,我的元数据被意向过滤器内隐藏。不用说,该服务无法注册

我现在在我的下一个错误:)

我希望这届是对别人有用。

I am following the SampleSyncAdapter and upon startup, it appears that my SyncAdapter is not configured correctly. It reports an error trying to load its meta-data. How can I isolate the problem? You can see the other accounts in the system that register correctly.

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)

Also note, I have tried to force mis-configuration to see if I could change the error in a way that would point out my flaw. Unfortunately, most of the misconfigurations are caught by the (pre)compiler.

I managed to find this logcat entry after an uninstall/install which corresponds to my meta-data node inside the AndroidManifest.xml for the Sync Adapter's service entry. It may be a very important clue that I am investigating.

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

解决方案

I found it! Sure enough, that start-up message was key to finding the error. I had a mistake in my manifest. I put the meta-data nodes inside the intent-filter of the sync adapter. Therefore, my meta-data was hidden inside the intent-filter. Needless to say, the service could not be registered.

I am now on to my next bug :)

I hope this session is useful to others.

这篇关于为什么没有android.content.SyncAdapter元数据登记同步适配器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆