我在Android的一个小界面上工作,当我运行它时,“xxx应用程序意外停止”出现。我正在寻找可能的错误,但我没有找到任何东西。更改R类包android/eclipse
无论如何,我想改变R类包名,当我重构 - >重命名它时,eclipse会在旧包中生成另一个包,即使我删除该包后eclipse会再次生成它,我无法摆脱它!
我在Android的一个小界面上工作,当我运行它时,“xxx应用程序意外停止”出现。我正在寻找可能的错误,但我没有找到任何东西。更改R类包android/eclipse
无论如何,我想改变R类包名,当我重构 - >重命名它时,eclipse会在旧包中生成另一个包,即使我删除该包后eclipse会再次生成它,我无法摆脱它!
要改变产生R
类的包名称,更改<manifest>
标签的package
财产AndroidManifest.xml
它可以通过自定义工具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>
非常感谢这个提示。大卫,我认为对我来说,处理几个项目分支将非常有用。你能否完成一些答案?我的意思是,我需要将该XML代码放在哪里? – 2012-07-18 11:23:57
我的评论不适用于最近的Android SDK,因为aapt ANT任务已经在Android工具中引入,并且它在Android ANT脚本中使用。 我在我身边做的是定制
我已经定制了一个Ant脚本,这样我可以构建我的应用程序时R.java更改包名。我所做的是覆盖-code-gen目标,并在-code-gen执行aapt时修改projectLibrariesPackageName属性。 (一个替代方案是更改构建build.xml文件,Eclipse是使用,我认为它可以在/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>
更改您的视角从文摘Java透视图(右上角)到DDMS视角。在那里你会发现LogCat在Android Build中查看错误。
检查它,然后发布错误,以便我们可以帮助你。
非常感谢! – Flanagan1 2010-11-30 11:49:03