1

我在我的 logcat 中找不到此错误的来源(“不允许 IntentReceiver 组件绑定到服务”)。抱歉,我已经粘贴了很多 logcat,但主要错误是粗体

请注意,在 logcat 错误列表中对我的代码的第一个引用是 AsyncTask,它本身是从从 BroadcastReceiver 调用的 IntentService 调用的。

04-17 07:46:03.163: W/dalvikvm(23525): threadid=24: 线程以未捕获的异常退出 (group=0x417582a0) 04-17 07:46:03.173: D/AccountsActivity(23525): onRequestDone 04-17 07:46:03.178: E/AndroidRuntime(23525): 致命异常: AsyncTask #2 04-17 07:46:03.178: E/AndroidRuntime(23525): java.lang.RuntimeException: 执行 doInBackground() 04 时发生错误-17 07:46:03.178: E/AndroidRuntime(23525): 在 android.os.AsyncTask$3.done(AsyncTask.java:299) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java. util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 04-17 07:46:03.178: E/AndroidRuntime(23525): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 04 -17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.FutureTask.run(FutureTask.java:137) 04-17 07:46:03.178: E/AndroidRuntime(23525) : 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1076) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 04-17 07:46:03.178: E/AndroidRuntime( 23525): 在 java.lang.Thread.run(Thread.java:856) 04-17 07:46:03.178:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:569) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.lang.Thread.run(Thread.java:856) 04-17 07:46:03.178 :03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:569) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.lang.Thread.run(Thread.java:856) 04-17 07:46:03.178 : E/AndroidRuntime(23525): 引起: android.content.ReceiverCallNotAllowedException: IntentReceiver 组件不允许绑定到服务04-17 07:46:03.178: E/AndroidRuntime(23525): 在 android.app.ReceiverRestrictedContext.bindService(ContextImpl.java:178) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 com. google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 04 -17 07:46:03.178: E/AndroidRuntime(23525): 在 com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:192) 04-17 07:46 :03.178: E/AndroidRuntime(23525): 在 com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:217) 04-17 07:46:03.178: E/AndroidRuntime(23525):在 com.google.api.client.http.HttpRequest。执行(HttpRequest.java:836)04-17 07:46:03.178:E/AndroidRuntime(23525):在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:412)04-17 07:46:03.178: E/AndroidRuntime(23525): 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345) 04-17 07:46:03.178: E/AndroidRuntime(23525 ): 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 com.my_package.ServerRequests$11.doInBackground (ServerRequests.java:378) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.my_package.ServerRequests$11.doInBackground(ServerRequests.java:1) 04-17 07:46:03.163: W/达尔维克虚拟机(23525):threadid=24:线程以未捕获的异常退出(组=0x417582a0)04-17 07:46:03.173:D/AccountsActivity(23525):onRequestDone 04-17 07:46:03.178:E/AndroidRuntime(23525):致命异常: AsyncTask #2 04-17 07:46:03.178: E/AndroidRuntime(23525): java.lang.RuntimeException: 执行 doInBackground() 时发生错误 04-17 07:46:03.178: E/AndroidRuntime(23525): at android.os.AsyncTask$3.done(AsyncTask.java:299) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.FutureTask.setException(FutureTask.java:124) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 04-17 07:46:03.178:E/AndroidRuntime(23525): 在 java.util.concurrent.FutureTask.run(FutureTask.java:137) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 android.os.AsyncTask$SerialExecutor$1。运行(AsyncTask.java:230)04-17 07:46:03.178:E/AndroidRuntime(23525):在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 java.lang.Thread.run (Thread.java:856) 04-17 07:46:03.178: E/AndroidRuntime(23525): 由: android.content.ReceiverCallNotAllowedException: IntentReceiver 组件不允许绑定到服务 04-17 07:46:03.178: E/AndroidRuntime(23525):在 android.app.ReceiverRestrictedContext。bindService(ContextImpl.java:178) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 04-17 07:46:03.178 : E/AndroidRuntime(23525): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.api.client .googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:192) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.api.client.googleapis.extensions。 android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:217) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.api.client.http.HttpRequest.execute(HttpRequest .java:836) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.api。client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:412) 04-17 07:46:03.178: E/AndroidRuntime(23525): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest .java:345) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463) 04-17 07:46 :03.178: E/AndroidRuntime(23525): 在 com.my_package.ServerRequests$11.doInBackground(ServerRequests.java:378) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 com.my_package.ServerRequests$11。 doInBackground(ServerRequests.java:1) 04-17 07:46:03.178: E/AndroidRuntime(23525): 在 android.os.AsyncTask$2.call(AsyncTask.java:287) 04-17 07:46:03.178:E/AndroidRuntime(23525): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 04-17 07:46:03.178: E/AndroidRuntime(23525): ... 还有 5 个

logcat 中对“doInBackground”的引用是对我(不是 Android 操作系统)代码的唯一引用,并且只是一个 Google Cloud Endpoint 调用:

uEndpoint.doRegistration(registrationId).execute();

我定义的广播接收器中没有任何明确的“bindService”调用。

我在哪里可以非法绑定服务?关于在哪里寻找这个问题的任何想法?

谢谢。

4

1 回答 1

2

问题来自GoogleAccountCredentialIntentService 中的错误使用。IntentService 从启动它的 BroadcastReceiver 获取它的 Context 对象。这个 BroadcastReceiver 有一个“ReceiverRestrictedContext”。在

GoogleAccountCredential.usingAudience(context,.,.)  //-- this context was a "ReceiverRestrictedContext" 

在端点执行中使用凭据之前不会引发异常。

我通过使用修复它

GoogleAccountCredential.usingAudience(getApplicationContext(),.,.)

在 IntentService 中。

于 2013-04-18T02:09:14.070 回答