AnalyticsService không được đăng ký trong tệp kê khai ứng dụng - lỗi


85

Tôi đang cố gắng triển khai dịch vụ google analytics cho ứng dụng android bằng cách sử dụng tài liệu sau được cung cấp trong sdk:

https://developers.google.com/analytics/devguides/collection/android/v4/

Tôi không thể thấy bất kỳ thông tin nào trong trang web quản trị phân tích.

Trong khi ứng dụng đang chạy, tôi thấy thông báo gỡ lỗi sau

"AnalyticsService không được đăng ký trong tệp kê khai ứng dụng. Các lượt truy cập có thể không được phân phối một cách đáng tin cậy. Hãy xem https://developers.google.com/analytics/devguides/collection/android/v4/ để được hướng dẫn."

Bạn có thể vui lòng gợi ý cho tôi cách đăng ký dịch vụ này không?


Kiểm tra xem bạn đã khởi chạy phân tích trong lớp ứng dụng hay hoạt động đích chính. Tôi khuyên bạn nên xóa mã trình theo dõi toàn cầu (XML).
Manan Sharma

Câu trả lời:


178

Tôi không chắc liệu hành động theo cảnh báo này có giải quyết được vấn đề bạn đang gặp phải hay không (nghĩa là không thấy bất kỳ thông tin nào trong trang web quản trị Analytics).

Dù sao, đây là những gì bạn nên thêm vào AndroidManifest.xml bên trong thẻ ứng dụng nếu bạn muốn loại bỏ cảnh báo này:

 <!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background
      dispatching on non-Google Play devices -->
 <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
     android:enabled="true">
     <intent-filter>
         <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
     </intent-filter>
 </receiver>
 <service android:name="com.google.android.gms.analytics.AnalyticsService"
     android:enabled="true"
     android:exported="false"/>

 <!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
      installation campaign reporting -->
 <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
     android:exported="true">
     <intent-filter>
         <action android:name="com.android.vending.INSTALL_REFERRER" />
     </intent-filter>
 </receiver>
 <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />

Bạn không cần phải thêm tất cả những thứ này, chỉ cần thêm những gì bạn cần. Trong trường hợp của bạn, bạn dường như chỉ cần thêm AnalyticsServicedịch vụ.

Nguồn: https://developer.android.com/reference/com/google/android/gms/analytics/GoogleAnalytics.html


9
Tôi đã giải quyết điều này thông qua phương pháp này. Tuy nhiên, có một điều cần lưu ý cho người mới bắt đầu là các mã có thể cần phải được thêm vào bên trong "ứng dụng" tag =)
yi2ng2

57
Câu hỏi thực sự là tại sao những thứ này không xuất hiện ở đây: Develop.google.com/analytics/devguides/collection/android/v4 ?
Buddy

6
@EnesBattal có thể vì chúng chỉ bắt buộc trên các thiết bị không có dịch vụ Google Play. Nhưng tôi cũng cảm thấy nó nên được đề cập trong các tài liệu đó.
aandis

2
Tôi đã thêm chúng vào tệp kê khai của mình và bây giờ tôi không còn nhận được cảnh báo trong LogCat nữa, nhưng khi tôi bật gỡ lỗi cho GoogleAnalytics, tôi vẫn nhận được chúng trong thiết bị đầu cuối? Các lệnh Tôi đã sử dụng để cho phép gỡ lỗi trong Terminal: "adb shell setprop log.tag.GAv4 DEBUG" và "adb logcat -s GAv4"
Mehlyfication

@zack, nếu ứng dụng sẽ được chuyển đến Cửa hàng Play, thì điều đó có nghĩa là bạn không biết ứng dụng sẽ được cài đặt vào thiết bị nào, do đó, ngụ ý rằng các dịch vụ và bộ thu này phải được thêm vào tệp kê khai. Chắc chắn trong trường hợp của tôi, tôi có một số thiết bị đã cài đặt các dịch vụ Play và đây là cách duy nhất để loại bỏ các cảnh báo trong LogCat
Phileo99

26

thêm cái này vào tệp kê khai

 <service android:name="com.google.android.gms.analytics.AnalyticsService"
 android:enabled="true"
 android:exported="false"/>

kết quả nào trong bảng điều khiển sẽ được hiển thị để đảm bảo rằng nó hoạt động?
deadfish


0

Tôi đã gặp vấn đề tương tự - thông báo về AnalyticsService có vẻ như thiết bị của bạn không có Dịch vụ của Google, nhưng với tôi thì không đúng. Tuy nhiên, tôi nhận ra rằng tôi không thể chắc chắn rằng nhật ký này đã được gọi từ ứng dụng của tôi - nhật ký trông giống như vậy : 10173-10192/? V/GAV4, nên tên gói đã bị ẩn.

Để xem nhật ký từ Google Analytics, bạn nên thay đổi cấp độ nhật ký thành dài dòng:

GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE);

Nó sẽ giúp bạn phân tích, đâu là nguyên nhân gây ra vấn đề của bạn.


4
GoogleAnalytics.getInstance (this) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); không được dùng nữa. Thay vào đó
hãy

Bạn đang sử dụng các phương pháp không được dùng nữa.
IgorGanapolsky

5
@IgorGanapolsky nó không bị ngừng sử dụng vào tháng 6 năm '15
Krzysztof Skrzynecki
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.