我正在尝试让GCM在我的Android-App上运行,我在调用GCMRegistrar.register()后不久就收到这个奇怪的错误消息(app-name是我可以使用的应用程序的名称&t; t公开了):
java.lang.ClassNotFoundException: Didn't find class
"com.<companyname>.<appname>.GCMIntentService" on path: DexPathList[[zip file
"/system/framework/com.google.android.maps.jar", zip file "/data/app/<app-
name>"],nativeLibraryDirectories=[/data/app-lib/<app.name>,
/vendor/lib, /system/lib]]
AndroidManifest的(我认为)相关部分:
<service android:name=".GCMIntentService" />
类GCMIntentService存在于指定的路径中,我从Google提供的GCM-Client项目中复制了该文件,因此我不能解决问题所在。
有什么想法吗?
更新 我将类GCMIntentService移动到以下包:
com.google.android.gcm.demo.app
不,我收到警告:
Unable to start service Intent { act=com.google.android.c2dm.intent.REGISTRATION
flg=0x10 pkg=com.<company-name>.<app-name>
cmp=com.xitaso.plugsurfing/.GCMIntentService (has extras) } U=0: not found
这是什么意思?
答案 0 :(得分:0)
我弄清楚问题是什么:GCMIntentService必须位于包名称的根目录中,在我的情况下是com.companyname.appname;我创建了一个单独的包,其中我放置了GCMIntentService类,从那时起它工作正常(至少我认为这是主要问题)。
答案 1 :(得分:0)
如果您不使用GCM并且此异常来自其他库,请执行以下操作:
<service
android:name="package.GCMIntentService"
tools:node="remove" />