2014-09-23 48 views
0

我有一個應用程序項目,它使用庫(引用庫項目,不使用jar)。在第一個庫內部,我想使用另一個庫(估計信標庫),這次使用第一個庫libs文件夾內的jar。要正確使用此第二個庫,我需要在清單中的以下服務聲明:從Android應用程序庫內引用庫APP Manifest

<service android:name="com.estimote.sdk.service.BeaconService" 
    android:exported="false"/> 

我試圖在APP項目清單,宣佈這項服務,但它並沒有得到它。使用第一個庫項目清單是相同的(正常,如果我沒有錯誤,這個清單被編譯器忽略)。

任何幫助將不勝感激。我一直在尋找類似的問題,但我沒有幸運。

編輯:

即使下面的配置它不工作:

  • 第一庫具有Estimote燈塔SDK(第二庫)在lib文件夾添加。此外,它具有在清單中聲明的​​藍牙許可和服務。
  • APP項目具有第一個庫(不使用jar,但引用該項目)和第二個庫在其lib文件夾中。藍牙許可和服務在清單中聲明。

我還創建了一個測試應用程序,聲明服務和藍牙權限,並將庫添加到lib文件夾中,它運行得非常好,所以在使用我的庫時它會變得混亂。

回答

0

AndroidManifest.xml這只是Application配置文件,而不是build文件。

如果您正在使用Gradle構建系統,則應該在build.gralesettings.gradle文件中指定您的庫相關性。

閱讀本Building Your Android Project with Gradle

+0

我沒有使用Gradle作爲庫的依賴關係,實際上我不知道Gradle究竟是什麼。我會看一看。 – Rafag 2014-09-24 10:43:47

+0

重點不在於Gradle構建系統,而在於構建系統。如果您在主項目中找不到您的庫中的類(例如,在AndroidManifest.xml中),那麼庫不在項目構建路徑中,並且不包含在項目構建中。如果您使用的是Eclipse,請查看http://developer.android.com/tools/projects/projects-eclipse.html。 – 2014-09-24 10:50:00

+0

感謝您的鏈接。問題在於我沒有引用該庫,例如在「在清單文件中聲明庫組件」中顯示,但是使用庫的.jar。無論如何,我應該能夠從圖書館找到一個班級,但是對於我來說,沒有找到它(對於我想要的項目,它是一個空的和簡單的項目)。 – Rafag 2014-09-24 11:14:30

0

嘗試啓用清單合併在project.properties文件:

manifestmerger.enabled=true 

還要檢查你生成的清單中的bin目錄你建立後您的項目,並確保服務定義在那兒。

這是適用於Android Beacon Library,的方法,我用它來使其他庫依賴於它。

儘管Android Studio提供了更靈活的工具,但最終確實如此。

+0

我嘗試過,但沒有運氣。我檢查應用程序倉庫清單,服務定義肯定存在......這真的很奇怪。請檢查我最後的編輯。 – Rafag 2014-09-24 10:42:34

相關問題