2017-09-19 96 views
1

首先我生成一些動態的android庫,其中包含src/main/res/xml/config.xml中包含庫特定數據的xml文件。接下來,當我構建我的android應用程序,並生成庫作爲depencencies時,我期望生成的apk包含與所有庫的xml配置文件合併的xml配置文件,但它不會。Android gradle項目可以合併庫xml資源

插件Android清單合併在一個文件中,是否有某件事可以使它對xml文件起作用?這甚至可能嗎?

每個插件都有其包含例如一個配置文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<plugins> 
    <feature name="Plugin1"> 
     <param name="package" value="com.example.Plugin1"/> 
    </feature> 
</plugins> 

和我預料的APK包含內容的XML配置文件,3個插件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<plugins> 
    <feature name="Plugin1"> 
     <param name="package" value="com.example.Plugin1"/> 
    </feature> 

    <feature name="Plugin2"> 
     <param name="package" value="com.example.Plugin2"/> 
    </feature> 

    <feature name="Plugin3"> 
     <param name="package" value="com.example.Plugin3"/> 
    </feature> 
</plugins> 

謝謝

+0

我不認爲這會工作,你嘗試的方式(即通用的XML文件)。你能分享一個config.xml的例子嗎? –

+0

是的,我編輯了問題 – reaper

回答

0

我不認爲這是可能的你的建議。另一種值得探索的方法是將XML文件創建爲資產,並使用唯一的名稱(例如assets/plugin-(plugin-name).xml)。

這有兩個屬性會在編譯時和運行時使這成爲可能:

  • 作爲文件名都是獨一無二的,你最終會在以下方面具有不會被覆蓋您的資產目錄中的文件的集合(以下示例可能是assets/plugin-Plugin1.xml,assets/plugin-Plugin2.xml,assets/plugin-Plugin3.xml),
  • ,因爲它們在資產目錄中,它們是can be listed

有了這個,你可以在運行時有類似的效果。另外值得一提的是,在您創建的每個插件中包含一個合適的Proguard規則文件,如果您將APK縮小,我知道您的插件將在運行時通過反射實例化。

+0

感謝您的提示,我會這樣做,直到我找到更好的方式。謝謝 – reaper

+0

不客氣。如果你找到更好的方法,請添加一個答案。 –