2016-05-04 82 views
9

我試圖爲Android生成一個Xamarin Binding com.adobe.creativesdk.image如何爲許多依賴關係的AAR生成Xamarin綁定?

問題是這個庫包含像20個引用,並且這些引用肯定包含更多。我必須瀏覽整個樹並提取所有引用以將它們添加到綁定項目。

肯定有一個更簡單的方法來做到這一點。有人告訴我,我可以創建一個包含使用Android Studio的所有引用的包AAR,但我不確定要使其工作的步驟。一些參考文獻也是AAR。

請問您能否將我置於正確的路徑以使此綁定工作?

+0

你嘗試過這樣的 http://stackoverflow.com/questions/24309950/create-aar-file-in-android-studio – Ankur1994a

+0

Ankur1994a:恐怕看不出有什麼幫助。你能解釋一下嗎? –

回答

1

我有同樣的問題,我終於通過簡單地添加依賴關係來解決它。許多可以通過NuGet包添加(右鍵單擊綁定項目並單擊添加nuget包...),最常見的像play服務,gson okhttp3等可以在這裏找到。如果你像我一樣擁有一些不常見的依賴關係,那麼你可能需要將它們自己添加爲綁定項目。

我讀到你可以直接向綁定項目添加aar/jar依賴項,並將生成操作設置爲referenceJar或embeddedReferenceJar,但這對我無效。我對xamarin相對來說比較新,所以我不確定它是不是它打算被使用的方式,或者是因爲它們不能被執行錯誤自動綁定(有一些錯誤和警告,我需要在元文件中修復我後來將依賴jar/aar添加到它自己的bindingsproject中)。

無論如何,我得到它的方式是通過向解決方案添加一個新的綁定項目,其中我添加了依賴項jar/aar,然後構建它並在元文件中添加所需的行/節點,以使其編譯。然後我簡單地在我的實際綁定項目中添加「依賴綁定」項目作爲參考。

這種感覺更像是一種解決方案而不是實際的解決方案,但至少我已經將其運用了,所以希望它能幫助您。

1

綁定庫總是有自己的警告,但我會做一些概括來幫助保持組織。

  1. 檢查涉及的依賴關係,如果它們中的任何一個已經在Nuget上使用這些。像Android支持庫,Google Play API,IBM SDK等等。它們中的大多數已經具有綁定並且在Nuget中。

  2. 不要忘記檢查你的依賴版本號與Nuget中的版本號。也許你的.aar lib實際上比Nuget上的Binding更新。

  3. 獨立的大型圖書館。找到不在Nuget中的相對較大的其他依賴項,然後爲它們中的每一個創建單獨的Android綁定庫項目。通常綁定API會以大型庫作爲依賴關係而分崩離析,因此爲它們創建單獨的項目(然後將項目引用添加到最終庫)要容易得多(並且更清潔的IMO)。

  4. 將您的jarsaars分開。通常你的.aar文件是無論如何都得到自己的綁定並循環到#3的大文件,但jar依賴項應使用ReferenceJar構建操作。

  5. 玩你的MetaData.xml。這可能需要很長時間,但綁定API並不完美。使用MetaData和其他文件來清理您的喜好。

一些其他的東西,可能會幫助: