yandexmobile/metrica-sdk-android

java.lang.SecurityException: Not allowed to bind to service Intent

Closed this issue · 7 comments

На паре android-устройств через bugsense увидели такие падения:

java.lang.SecurityException: Not allowed to bind to service Intent { act=com.yandex.metrica.IMetricaService dat=metrica://ru.ourcompanyname cmp=ru.beboss.franchising/com.yandex.metrica.MetricaService (has extras) }
at android.app.ContextImpl.bindService(ContextImpl.java:1259)
at android.app.ContextImpl.bindService(ContextImpl.java:1233)
at android.content.ContextWrapper.bindService(ContextWrapper.java:394)
at com.yandex.metrica.g.a(MetricaConnector.java:62)
at com.yandex.metrica.Counter$d.run(Counter.java:258)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)

Есть идеи?

Покажите пожалуйста те части манифеста, которые относятся к Yandex Metrica for Apps.

<meta-data android:name="metrica:api:key" android:value="0000" />

<service android:name="com.yandex.metrica.MetricaService" android:process=":Metrica" >
    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
        <action android:name="com.yandex.metrica.IMetricaService" />
        <data android:scheme="metrica" />
    </intent-filter>
    <meta-data android:name="metrica:api:level" android:value="1" />
</service>

<receiver android:name="com.yandex.metrica.MetricaEventHandler" >
    <intent-filter>
        <action android:name="com.yandex.metrica.intent.action.SYNC" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

<receiver android:name="com.yandex.metrica.CampaignReceiver" android:exported="true" >
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>

<provider
        android:name="ru.ourcompanyname.analytics.MetricaContentProvider"
        android:authorities="ru.ourcompanyname.MetricaContentProvider"
        android:exported="true" />
  • Вы используете 1.0 версию или 1.2? Если 1.2, то API-level = 4.
    <meta-data android:name="metrica:api:level" android:value="4" />
  • Это только на паре девайсов? А так на основных других девайсах такого не происходит?
  • Если предыдущие верно, то случаем эти девайсы не девайсы вида Explay например? Android 2.3.X?
  • Используем 1.0. В следующем релизе перейдем на 1.2
  • Не просто 2 девайса, а 2 юзера из многих тысяч — ASUS Transformer Pad TF300TG и MediaPad 10 FHD. 4.2.1 и 4.1.2 соответственно. В принципе девайсы "нормальные".

Еще один уточняющий вопрос:

  • Пакет Вашего приложения есть ru.ourcompanyname?, а вот это приложение ru.beboss.franchising - не Ваше?

ru.beboss.franchising не наше

В общем при установленном приложение https://play.google.com/store/apps/details?id=ru.beboss.franchising. Наше приложение падает через 6 секунд. На android 4.4.2 этого не происходит.

Обновил яндекс-метрику до версии 1.2. Не падает. Хотелось бы понять, не будет ли падать, если beboss тоже обновятся:)

Эта проблема известна и с выходом новой версии такое уже не должно будет случаться. Старайтесь всегда обновлять библиотеки с каждым новым Вашим релизом/апдейтом. Спасибо за issue.