【问题标题】:Service Intent must be explicit - Google Analytics服务意图必须明确 - Google Analytics
【发布时间】:2014-12-04 13:50:59
【问题描述】:

可能与 Android 5.0 (L) Service Intent must be explicit 2 重复,但有细微差别

我在 Lollipop - Nexus 5 中遇到此错误

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.google.android.gms.analytics.service.START (has extras) }
        at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1674)
        at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1773)
        at android.app.ContextImpl.bindService(ContextImpl.java:1751)
        at android.content.ContextWrapper.bindService(ContextWrapper.java:538)
        at com.google.analytics.tracking.android.AnalyticsGmsCoreClient.connect(AnalyticsGmsCoreClient.java:82)
        at com.google.analytics.tracking.android.GAServiceProxy.connectToService(GAServiceProxy.java:330)
        at com.google.analytics.tracking.android.GAServiceProxy.createService(GAServiceProxy.java:210)
        at com.google.analytics.tracking.android.GAThread.init(GAThread.java:85)
        at com.google.analytics.tracking.android.GAThread.run(GAThread.java:352)

我的项目使用 maven 和 google analytics v3 和 play services 4.3.23,即使在 lollipop nexus 5 中也一切正常。

迁移到 gradle 后,我保留了 Analytics v3 并将播放服务更新到 6.1.71,不知道这是否是问题

更多堆栈跟踪

2-04 14:23:42.331  13618-13759/com.xxxxxx.mypackage V/GAV3﹕ Thread[GAThread,5,main]: connecting to Analytics service
12-04 14:23:42.337  13618-13759/com.xxxxxx.mypackage W/System.err﹕ java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.google.android.gms.analytics.service.START (has extras) }
12-04 14:23:42.337  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1674)
12-04 14:23:42.337  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1773)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at android.app.ContextImpl.bindService(ContextImpl.java:1751)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at android.content.ContextWrapper.bindService(ContextWrapper.java:538)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at com.google.analytics.tracking.android.AnalyticsGmsCoreClient.connect(AnalyticsGmsCoreClient.java:82)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at com.google.analytics.tracking.android.GAServiceProxy.connectToService(GAServiceProxy.java:330)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at com.google.analytics.tracking.android.GAServiceProxy.createService(GAServiceProxy.java:210)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at com.google.analytics.tracking.android.GAThread.init(GAThread.java:85)
12-04 14:23:42.338  13618-13759/com.xxxxxx.mypackage W/System.err﹕ at com.google.analytics.tracking.android.GAThread.run(GAThread.java:352)
12-04 14:23:42.342  13618-13759/com.xxxxxx.mypackage W/FlurryAgent﹕ Error logged: uncaught
12-04 14:23:42.342  13618-13759/com.xxxxxx.mypackage W/FlurryAgent﹕ Trying to end session
12-04 14:23:42.346  13618-13759/com.xxxxxx.mypackage W/FlurryAgent﹕ Ending session
12-04 14:23:42.350  13618-13759/com.xxxxxx.mypackage V/GAV3﹕ Thread[GAThread,5,main]: Tracking Exception: IllegalArgumentException (@ContextImpl:validateServiceIntent:1674) {GAThread}
12-04 14:23:42.351  13618-13759/com.xxxxxx.mypackage V/GAV3﹕ Thread[GAThread,5,main]: Dispatch call queued. Dispatch will run once initialization is complete.
12-04 14:23:42.351  13618-13759/com.xxxxxx.mypackage V/GAV3﹕ Thread[GAThread,5,main]: Passing exception to original handler.
12-04 14:23:42.351  13618-13759/com.xxxxxx.mypackage E/ACRA﹕ ACRA caught a IllegalArgumentException exception for com.xxxxxx.mypackage. Building report.
12-04 14:23:42.565  13618-13759/com.xxxxxx.mypackage I/ACRA﹕ READ_LOGS granted! ACRA can include LogCat and DropBox data.
12-04 14:23:42.603  13618-13759/com.xxxxxx.mypackage D/ACRA﹕ Retrieving logcat output...
12-04 14:23:42.629  13618-13759/com.xxxxxx.mypackage D/ACRA﹕ Writing crash report file 1417710222000.stacktrace.
12-04 14:23:42.643  13618-13759/com.xxxxxx.mypackage D/ACRA﹕ About to start ReportSenderWorker from #handleException
12-04 14:23:42.645  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ Mark all pending reports as approved.
12-04 14:23:42.645  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ Looking for error files in /data/data/com.xxxxxx.mypackage/files
12-04 14:23:42.646  13618-14174/com.xxxxxx.mypackage D/ACRA﹕ Waiting for Toast + worker...
12-04 14:23:42.649  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ #checkAndSendReports - start
12-04 14:23:42.649  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ Looking for error files in /data/data/com.xxxxxx.mypackage/files
12-04 14:23:42.650  13618-14173/com.xxxxxx.mypackage I/ACRA﹕ Sending file 1417710222000-approved.stacktrace
12-04 14:23:42.661  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ Sending report 180cde9c-d8e3-4d00-b677-185630e6c44b
12-04 14:23:42.661  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ Connect to https://docs.google.com/spreadsheet/formResponse?formkey=dE04R1o0VjJDM29QXaQ2ZTVjSVNzdGc6MQ&ifq
12-04 14:23:42.708  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ Sending request to https://docs.google.com/spreadsheet/formResponse?formkey=dE04R1o0VjJDM29QXaQ2ZTVjSVNzdGc6MQ&ifq
12-04 14:23:42.991  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Address from preferences ->null
12-04 14:23:42.991  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Address from preferences ->null
12-04 14:23:42.991  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Address from preferences ->null
12-04 14:23:42.991  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Address from preferences ->null
12-04 14:23:42.991  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Address from preferences ->null
12-04 14:23:42.991  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Address from preferences ->null
12-04 14:23:43.000  13618-13618/com.xxxxxx.mypackage I/INFO﹕ *****************************
12-04 14:23:43.000  13618-13618/com.xxxxxx.mypackage I/INFO﹕ Cancel move camera
12-04 14:23:43.000  13618-13618/com.xxxxxx.mypackage I/INFO﹕ *****************************
12-04 14:23:43.059  13618-13618/com.xxxxxx.mypackage V/GCMBroadcastReceiver﹕ onReceive: com.google.android.c2dm.intent.REGISTRATION
12-04 14:23:43.059  13618-13618/com.xxxxxx.mypackage V/GCMBroadcastReceiver﹕ GCM IntentService class: com.xxxxxx.mypackage.GCMIntentService
12-04 14:23:43.061  13618-13618/com.xxxxxx.mypackage V/GCMBaseIntentService﹕ Acquiring wakelock
12-04 14:23:43.066  13618-13618/com.xxxxxx.mypackage V/GCMBaseIntentService﹕ Intent service name: GCMIntentService-670358886800-1
12-04 14:23:43.066  13618-13618/com.xxxxxx.mypackage E/GCMBaseIntentService﹕ [GCMIntentService] start
12-04 14:23:43.069  13618-14192/com.xxxxxx.mypackage E/GCMRegistrar﹕ internal error: retry receiver class not set yet
12-04 14:23:43.070  13618-13618/com.xxxxxx.mypackage V/GCMBroadcastReceiver﹕ onReceive: com.google.android.c2dm.intent.REGISTRATION
12-04 14:23:43.070  13618-14192/com.xxxxxx.mypackage V/GCMRegistrar﹕ Registering receiver
12-04 14:23:43.070  13618-13618/com.xxxxxx.mypackage V/GCMBroadcastReceiver﹕ GCM IntentService class: com.xxxxxx.mypackage.GCMIntentService
12-04 14:23:43.070  13618-13618/com.xxxxxx.mypackage V/GCMBaseIntentService﹕ Acquiring wakelock
12-04 14:23:43.073  13618-14192/com.xxxxxx.mypackage D/GCMBaseIntentService﹕ handleRegistration: registrationId = null, error = null, unregistered = com.xxxxxx.mypackage
12-04 14:23:43.074  13618-14192/com.xxxxxx.mypackage D/GCMRegistrar﹕ resetting backoff for com.xxxxxx.mypackage
12-04 14:23:43.074  13618-14192/com.xxxxxx.mypackage V/GCMRegistrar﹕ Saving regId on app version 25
12-04 14:23:43.089  13618-14192/com.xxxxxx.mypackage V/GCMIntentService onUnregistered﹕ [ 12-04 14:23:43.090 13618:14192 V/GCMBaseIntentService ]
    Releasing wakelock
12-04 14:23:43.092  13618-14192/com.xxxxxx.mypackage D/GCMBaseIntentService﹕ handleRegistration: registrationId = APA91bHiOw6h7JU9dvLc1Qqw04GXQkrlbV-4LZIQfO6e8uIEGaFSsVNqsdmTi53PXZVEARzI6XLxK3rXXM3OrUm8wIRC0jmgB2yXrrVRoTkSvwQXtPSywJR2AJkcs_2a39KwvLxnyN97JLdP8hVVLtSElBCGYLNMyDIlXYWC01i7Th4OyVA1FOM, error = null, unregistered = null
12-04 14:23:43.092  13618-14192/com.xxxxxx.mypackage D/GCMRegistrar﹕ resetting backoff for com.xxxxxx.mypackage
12-04 14:23:43.095  13618-14192/com.xxxxxx.mypackage V/GCMRegistrar﹕ Saving regId on app version 25
12-04 14:23:43.116  13618-14192/com.xxxxxx.mypackage V/GCMIntentService onRegistered﹕ APA91bHiOw6h7JU9dvLc1Qqw04GXQkrlbV-4LZIQfO6e8uIEGaFSsVNqsdmTi53PXZVEARzI6XLxK3rXXM3OrUm8wIRC0jmgB2yXrrVRoTkSvwQXtPSywJR2AJkcs_2a39KwvLxnyN97JLdP8hVVLtSElBCGYLNMyDIlXYWC01i7Th4OyVA1FOM
12-04 14:23:43.116  13618-14192/com.xxxxxx.mypackage V/GCMBaseIntentService﹕ Releasing wakelock
12-04 14:23:43.660  13618-13634/com.xxxxxx.mypackage I/art﹕ Background sticky concurrent mark sweep GC freed 57034(3MB) AllocSpace objects, 53(2MB) LOS objects, 13% free, 35MB/41MB, paused 8.499ms total 70.673ms
12-04 14:23:43.872  13618-14173/com.xxxxxx.mypackage W/ResponseProcessCookies﹕ Invalid cookie header: "Set-Cookie: NID=67=rrqRFddFUdEd6qmmRaW7u3wCSFSDlVoFobX4NqYeDntag4sOwuzwAeWjh6q3tsENizFX-5igAcBPOUj0M_QXkQKGPfKeCzpDD5-oXrveoj8D1flwIx1TCB5v8i0F6CHR;Domain=.google.com;Path=/;Expires=Fri, 05-Jun-2015 16:24:18 GMT;HttpOnly". Unable to parse expires attribute: Fri
12-04 14:23:43.872  13618-14173/com.xxxxxx.mypackage E/ACRA﹕ Failed to send crash report for 1417710222000-approved.stacktrace
    org.acra.sender.ReportSenderException: Error while sending report to Google Form.
            at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:88)
            at org.acra.SendWorker.sendCrashReport(SendWorker.java:178)
            at org.acra.SendWorker.checkAndSendReports(SendWorker.java:141)
            at org.acra.SendWorker.run(SendWorker.java:77)
     Caused by: java.io.IOException: Host returned error code 404
            at org.acra.util.HttpRequest.sendPost(HttpRequest.java:139)
            at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:85)
            at org.acra.SendWorker.sendCrashReport(SendWorker.java:178)
            at org.acra.SendWorker.checkAndSendReports(SendWorker.java:141)
            at org.acra.SendWorker.run(SendWorker.java:77)
12-04 14:23:43.873  13618-14173/com.xxxxxx.mypackage D/ACRA﹕ #checkAndSendReports - finish
12-04 14:23:43.950  13618-14174/com.xxxxxx.mypackage D/ACRA﹕ Wait for Toast + worker ended. Kill Application ? true
12-04 14:23:43.951  13618-14174/com.xxxxxx.mypackage E/AndroidRuntime﹕ FATAL EXCEPTION: GAThread
    Process: com.xxxxxx.mypackage, PID: 13618
    java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.google.android.gms.analytics.service.START (has extras) }
            at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1674)
            at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1773)
            at android.app.ContextImpl.bindService(ContextImpl.java:1751)
            at android.content.ContextWrapper.bindService(ContextWrapper.java:538)
            at com.google.analytics.tracking.android.AnalyticsGmsCoreClient.connect(AnalyticsGmsCoreClient.java:82)
            at com.google.analytics.tracking.android.GAServiceProxy.connectToService(GAServiceProxy.java:330)
            at com.google.analytics.tracking.android.GAServiceProxy.createService(GAServiceProxy.java:210)
            at com.google.analytics.tracking.android.GAThread.init(GAThread.java:85)
            at com.google.analytics.tracking.android.GAThread.run(GAThread.java:352)

【问题讨论】:

标签: android google-analytics gradle google-play-services android-5.0-lollipop


【解决方案1】:

Lollipop 强制执行安全限制,您不能使用隐式 Intents 调用 startService()stopService()bindService()。为了让它在 Lollipop 上工作,请更新您的代码以在 Intent 中指定 ComponentName

【讨论】:

  • 好吧,我没有调用任何服务方法(或者至少我不知道我是否在调用)可能是我正在使用的某个库?也许是 Roboguice 2 或 GCM?并感谢您的回答!
  • 你能从 logcat 提供更长的回溯吗?这可能是您与分析交互的方式。
  • 另外,您提到为您的构建切换到 gradle:您是如何将播放服务和分析集成到您的构建中的?
  • 我用更多日志更新了问题,为了集成播放服务和分析,我只添加了依赖项compile 'com.google.android.gms:play-services:6.1.71' compile 'com.google.analytics:services:3.0'
  • 这看起来好像你有另一个使用谷歌表单的库,它可能正在利用分析,这会导致问题;但是,很难确定。 Analytics 3.0 被认为已弃用,但我没有看到任何关于它的信息根本无法工作。
【解决方案2】:

将 GA 更新到版本 4。它会工作。

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多