我在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