使用Lib文件夹更改包装名称Android/Maven
我正在为我的项目构建过程。基本上我想从同一个来源构建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与主应用程序有不同的软件包名称,可以吗?
在我的情况下,我这样做,并得到它的工作。 (我使用的Eclipse IDE)
选择项目和老包的名称做了
file search
,并用新的软件包名称替换。 (这将替换项目文件中的所有旧包名称)-
右键单击
package --> Refactor --> Rename
。替换为新的软件包名称。这将取代软件包配置。(如果你这样做的第一步之前,如果您有
.YourActivity
代替 (com.project.package.name.YourActivity
)在你的清单中声明全包的名称, 可能会导致错误) 再次选择该项目并做文件搜索。这次,如果您使用的是
AndroidAnnotations
,则会显示带注释的文件,并在此处用新包名替换其导入。
注:如果您使用的是自己的插件或使用旧包名称库,您可能需要确保它是在孩子pom.xml
一样,它也将被替换。
希望这有助于..! :)快乐编码..!