![](/img/trans.png)
[英]Is it possible to change package name on android project in eclipse?
[英]Change R class package android/eclipse
我正在研究android中的一个小界面,当我运行它时,“xxx应用程序意外停止”出现了。 我正在寻找可能的错误,但我找不到任何东西。
无论如何我想改变R类包的名称,当我重构 - >重命名时,eclipse在旧包中生成另一个,即使我删除了eclipse再次生成它的包,我也无法摆脱它!
要更改生成的R
类的包名,请在AndroidManifest.xml
更改<manifest>
标记的package
属性
可以通过自定义aapt工具命令行来实现。 aapt支持--custom-package选项,该选项指定将生成R类的包。
使用ANT,可以通过以下方式实现:
<exec executable="aapt" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg path="${gen.absolute.dir}" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-I" />
<arg path="${android.jar}" />
<arg value="-A" />
<arg path="${asset.absolute.dir}" />
<arg value="-S" />
<arg path="${resource.absolute.dir}" />
<arg value="--custom-package" />
<arg value="my.custom.package" />
</exec>
我已经定制了一个ant脚本,以便在构建应用程序时可以更改R.java的包名。 我所做的是覆盖-code-gen目标并在-code-gen执行aapt时修改projectLibrariesPackageName属性。 (一种替代方法是更改eclipse正在使用的构建build.xml,我认为它可以在/tools/ant/build.xml中找到)
<!-- Code Generation: compile resources (aapt -> R.java), aidl, renderscript -->
<target name="-code-gen">
<do-only-if-manifest-hasCode
elseText="hasCode = false. Skipping aidl/renderscript/R.java">
<echo>...........</echo>
<echo>Handling aidl files...</echo>
<aidl executable="${aidl}" framework="${android.aidl}"
genFolder="${gen.absolute.dir}">
<source path="${source.absolute.dir}"/>
</aidl>
<!-- renderscript generates resources so it must be called before aapt -->
<echo>...........</echo>
<echo>Handling RenderScript files...</echo>
<renderscript executable="${renderscript}"
framework="${android.rs}"
genFolder="${gen.absolute.dir}"
resFolder="${resource.absolute.dir}/raw"
targetApi="${target.api}">
<source path="${source.absolute.dir}"/>
</renderscript>
<echo>...........</echo>
<echo>Handling Resources...</echo>
<aapt executable="${aapt}"
command="package"
verbose="${verbose}"
manifest="AndroidManifest.xml"
androidjar="${android.jar}"
rfolder="${gen.absolute.dir}"
nonConstantId="${android.library}"
projectLibrariesResName="project.libraries.res"
projectLibrariesPackageName="package.internal"> <!-- Put custom package name here -->
<res path="${resource.absolute.dir}" />
</aapt>
</do-only-if-manifest-hasCode>
</target>
将您的Eclips视角从Java Perspective(右上角)更改为DDMS Perspective。 你会在Android Build中找到LogCat来查看错误。
检查它,然后发布错误,以便我们可以帮助您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.