构建Android应用程序时指定包名称

问题描述:

我有一个品牌能力的Android应用程序。我们使用SDK v15(4.0.x),当通过ant构建应用程序时,我们将在ant属性脚本中指定package.name = com.blah.brand。这将允许我们在设备上多次安装相同的应用程序,但每个应用程序和设置都是相同的。构建Android应用程序时指定包名称

由于升级到SDK v16(4.1)后,这不再起作用,我无法在构建应用程序时找到更改包装名称的方法。有谁知道如何做到这一点的新方法?

我能够通过AAPT和--rename舱单包要做到这一点,如下所述:Custom Android build.xml for rename manifest package

您也可以修改您的Ant build.xml。这种添加到它:

<target name="-package-resources" depends="-crunch"> 
     <do-only-if-not-library elseText="Library project: do not package resources..." > 
      <echo level="info">packagin resources for package: ${project.app.package}</echo> 
      <aapt executable="${aapt}" 
        command="package" 
        versioncode="${version.code}" 
        versionname="${version.name}" 
        debug="${build.is.packaging.debug}" 
        manifest="${out.manifest.abs.file}" 
        assets="${asset.absolute.dir}" 
        androidjar="${project.target.android.jar}" 
        apkfolder="${out.absolute.dir}" 
        nocrunch="${build.packaging.nocrunch}" 
        resourcefilename="${resource.package.file.name}" 
        resourcefilter="${aapt.resource.filter}" 
        libraryResFolderPathRefid="project.library.res.folder.path" 
        libraryPackagesRefid="project.library.packages" 
        libraryRFileRefid="project.library.bin.r.file.path" 
        previousBuildType="${build.last.target}" 
        buildType="${build.target}" 
        ignoreAssets="${aapt.ignore.assets}" 
        manifestpackage="NEW PACKAGE NAME HERE"> 
       <res path="${out.res.absolute.dir}" /> 
       <res path="${resource.absolute.dir}" /> 
      </aapt> 
     </do-only-if-not-library> 
    </target> 

物业manifestpackage将改变你的包名。