我正在爲我的項目構建過程。基本上我想從同一個來源構建2個應用程序。我使用不同的配置文件來做到這一點。使用Lib文件夾更改包裝名稱Android/Maven
我已經設法配置maven更改應用程序內的名稱和網址。我還需要更改包裝,因此這兩個應用程序可以同時在設備上。
我的項目設置與父POM和2分孩子的POM
的第一個孩子POM是它打包爲APKlib庫。 packaing是com.companylib
第二個孩子POM是創建實際APK並引用apklib。這是打包成com.company。
目前我正在使用此配置更改清單中的打包。
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<renameManifestPackage>${manifest_pakage}</renameManifestPackage>
<sign>
<debug>false</debug>
</sign>
<zipalign>
<verbose>true</verbose>
<inputApk>${project.build.directory}/${project.artifactId}.apk</inputApk>
<outputApk>${project.build.directory}/${project.artifactId}-signed-aligned.apk
</outputApk>
</zipalign>
<manifest>
<debuggable>true</debuggable>
<versionCodeAutoIncrement>true</versionCodeAutoIncrement>
</manifest>
<proguard>
<skip>true</skip>
</proguard>
</configuration>
<executions>
<execution>
<id>manifestUpdate</id>
<phase>process-resources</phase>
<goals>
<goal>manifest-update</goal>
</goals>
</execution>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
我在我使用的不同配置文件中定義了manifest_pakage。這是在第一個孩子POM中定義的。
兩個配置文件都可以正常工作,我可以將它們都安裝在同一個設備上。但是,當roboguice嘗試引用APKLIB時,我遇到了登臺應用程序中的問題。我收到以下錯誤...
FATAL EXCEPTION: main
com.google.inject.ConfigurationException: Guice configuration errors:
1) No implementation for com.companylib.ServerComms.Senders.StringSenderImp annotated with @com.google.inject.name.Named(value=json) was bound.
while locating com.companylib.ServerComms.Senders.StringSenderImp annotated with @com.google.inject.name.Named(value=json)
因此,看起來apklib上的包裝沒有改變。奇怪的是,我更換生產包裝,它工作正常(我用相同的包裝取代它)。
當我像這樣設置時,我應該期望構建更改lib的打包嗎?
如果lib與主應用程序有不同的軟件包名稱,可以嗎?