2015-05-25 2 views
1

в этой теме Beacons not detected in Android service но когда я поставил код в очевидномAltBeacon: BeaconConsumer в работы службы

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.ubiquitous.beaconone.tablet" 
android:versionCode="3" 
android:versionName="2.0" > 

<uses-sdk 
    android:minSdkVersion="19" 
    android:targetSdkVersion="19" /> 

<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

<application 
    android:icon="@drawable/logo" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".Activities.MainActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleInstance" 
     android:taskAffinity=""> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Activities.ScanningActivity"/> 

    <service 
     android:name="org.altbeacon.beacon.service.BeaconService" 
     android:enabled="true" 
     android:exported="true" 
     android:isolatedProcess="false"></service> 
    <service 
     android:name="org.altbeacon.beacon.BeaconIntentProcessor" 
     android:enabled="true"></service> 

</application> 

Я получил сообщение об ошибке:

Ошибка: (48, 13) Атрибут service#[email protected] value = (true) из AndroidManifest.xml: 48: 13

Ошибка: (48, 13) Выполнение выполнено для задачи ': app: processDebugManifest'.

Manifest merger failed : Attribute service#[email protected] value=(true) from AndroidManifest.xml:48:13 is also present at org.altbeacon:android-beacon-library:2.1.4:27:13 value=(false) Suggestion: add 'tools:replace="android:exported"' to element at AndroidManifest.xml:45:9 to override

+0

показать свой полный файл манифест – John

+0

Вопроса был обновлен, ти –

ответ

0

удалить

android:exported="true" 

от службы тега из org.altbeacon.beacon.service.BeaconService

1

При использовании Android Beacon Library, вы вообще не хотите ставить свои заявления службы в ваш манифест, потому что сама библиотека содержит свой собственный файл AndroidManifest.xml и использует процесс с именем manifest merging (автоматически при использовании Android Studio) для объединения записей из библиотеки в ваше приложение. .

Этот процесс будет копировать манифеста записи, показанные здесь: https://github.com/AltBeacon/android-beacon-library/blob/master/src/main/AndroidManifest.xml

В коде, показанном на вопрос, противоречивые данные были введены в манифест приложения, поэтому слияние не удается. Это значение сообщения об ошибке.

Точный источник конфликта - это атрибут android:exported="true". Значение этого атрибута было изменено на false в последней версии библиотеки.

Вы можете исправить это несколькими способами. Выберите только один из следующих действий:

  1. Удалите две записи службы из манифеста. Слияние автоматически добавит правильные записи.

  2. Изменение android:exported="true" в android:exported="false"

  3. Добавить tools:replace="android:exported" сразу после android:exported="true"

  4. Выключите манифест слияния и ввести все записи самостоятельно. Вам также необходимо скопировать запись StartupBroadcastReceiver, если вы хотите автозапуск.

Смотрите связанное обсуждение здесь: http://altbeacon.github.io/android-beacon-library/alternate-configuration.html

+0

спасибо, проблема решена, –

Смежные вопросы