2015-05-25 41 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 )來自AndroidManifest.xml的屬性[email protected] value =(true):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

問題已被更新,TY –

回答

0

服務標籤org.altbeacon.beacon.service.BeaconService刪除

android:exported="true" 

1

當使用Android Beacon Library,你一般不希望把它的服務聲明中因爲庫本身包含自己的AndroidManifest.xml文件,並使用稱爲清單合併(在使用Android Studio時自動執行)的過程將庫中的條目合併到應用程序的「 s清單。

這個過程將複製到這裏顯示的清單條目: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

謝謝,問題解決了, –