Android:当许多包使用R.java时出错
我有两个包,例如,Android:当许多包使用R.java时出错,java,android,android-manifest,package,android-resources,Java,Android,Android Manifest,Package,Android Resources,我有两个包,例如,packageA和packageB。 在packageA中,我有一个名为classA的类,它从R.java获取资源:示例: TextView textView = (TextView) findViewById(R.id.textView); 与包B相同。我有一个名为classB的类,它从R.java EditText editText = (EditText) findViewById(R.id.EditText); 当我想让android运行classB时,我必须更改a
packageA
和packageB
。
在packageA中,我有一个名为classA
的类,它从R.java
获取资源:示例:
TextView textView = (TextView) findViewById(R.id.textView);
与包B相同。我有一个名为classB
的类,它从R.java
EditText editText = (EditText) findViewById(R.id.EditText);
当我想让android运行classB
时,我必须更改android清单文件
,将默认包从com.packageA
更改为com.packageB
,这样classA将注意到上面一行的错误。我倒车时也是一样
那么,我如何解决这个问题:使用多个包,其中许多包使用资源数据
。请帮帮我
谢谢:)如果您的清单中指定的包是
com.packageA
,那么在packageA的文件中,您无需执行任何操作。在packageB
的文件中,使用import com.packageA.R代码>而不更改清单中的包名称。这样,您的packageB就可以访问R.java文件。如果清单中指定的包是com.packageA
,那么在packageA的文件中,您不需要做任何事情。在packageB
的文件中,使用import com.packageA.R代码>而不更改清单中的包名称。这样,您的packageB就可以访问R.java文件。您不需要在清单文件中提及您的所有包。只需声明类A包并运行程序。但是,请确保将类B的包导入到调用它的java类中。默认情况下,清单文件声明了创建新android项目时提到的第一个包
让我知道如果这解决了您的问题您不需要在清单文件中提及您的所有包。只需声明类A包并运行程序。但是,请确保将类B的包导入到调用它的java类中。默认情况下,清单文件声明了创建新android项目时提到的第一个包
让我知道这是否解决了您的问题我也遇到了同样的问题,因为我将一个项目转移到另一个具有不同资源的项目,并且因为我使用的是scala(2.8.3)和treeshaker,这些插件不允许我正确使用android库项目
我用ant添加了一个自定义构建步骤,在我想要的包中创建了一个R.java的副本,从而解决了这个问题
我在项目MyProjectExtended的根目录中添加了一个名为custom_rules.xml
的文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProjectExtended" default="debug">
<condition property="exe" value=".exe" else=""><os family="windows" /></condition>
<property name="aapt" location="C:\Program Files (x86)\Android\android-sdk\platform-tools\aapt${exe}" />
<property name="android.jar" location="C:\Program Files (x86)\Android\android-sdk\platforms\android-10\android.jar" />
<!-- Generates the R.java file for this project's resources. -->
<target name="debug">
<echo>Generating R.java / Manifest.java from the resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg line="" />
<arg value="-m" />
<arg value="-J" />
<arg path="gen" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-S" />
<arg path="res" />
<arg value="-I" />
<arg path="${android.jar}" />
<arg value="--custom-package" />
<arg value="com.MyProjectExtendedPackage" />
</exec>
</target>
</project>
正在从资源生成R.java/Manifest.java。。。
然后我添加了自定义构建步骤:
- 在项目上单击鼠标右键,然后单击“属性”
- 在“生成器”上,单击“新建…”
- 选择“Ant Builder”,继续
- 对于构建文件
${workspace\u loc:/MyProjectExtended/custom\u rules.xml}
- 基本目录:
${workspace\u loc:/MyProjectExtended}
如果控制台弹出窗口很烦人,您可以在名为“构建选项”的选项卡中禁用它。我也遇到了同样的问题,因为我用不同的资源将一个项目转移到另一个项目,并且因为我使用的是scala(2.8.3)和treeshaker,这些插件不允许我正确使用android库项目
我用ant添加了一个自定义构建步骤,在我想要的包中创建了一个R.java的副本,从而解决了这个问题
我在项目MyProjectExtended的根目录中添加了一个名为custom_rules.xml
的文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProjectExtended" default="debug">
<condition property="exe" value=".exe" else=""><os family="windows" /></condition>
<property name="aapt" location="C:\Program Files (x86)\Android\android-sdk\platform-tools\aapt${exe}" />
<property name="android.jar" location="C:\Program Files (x86)\Android\android-sdk\platforms\android-10\android.jar" />
<!-- Generates the R.java file for this project's resources. -->
<target name="debug">
<echo>Generating R.java / Manifest.java from the resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg line="" />
<arg value="-m" />
<arg value="-J" />
<arg path="gen" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-S" />
<arg path="res" />
<arg value="-I" />
<arg path="${android.jar}" />
<arg value="--custom-package" />
<arg value="com.MyProjectExtendedPackage" />
</exec>
</target>
</project>
正在从资源生成R.java/Manifest.java。。。
然后我添加了自定义构建步骤:
- 在项目上单击鼠标右键,然后单击“属性”
- 在“生成器”上,单击“新建…”
- 选择“Ant Builder”,继续
- 对于构建文件
${workspace\u loc:/MyProjectExtended/custom\u rules.xml}
- 基本目录:
${workspace\u loc:/MyProjectExtended}
如果控制台弹出窗口令人讨厌,您可以在名为“构建选项”的选项卡中禁用它。Oh。谢谢:)它解决了我的错误。但我的问题仍然让我头疼:(例如,在packageA
中,我有很多类。现在,我想首先在packageB
上运行,所以在android manifest
中,我使用com.packageB
,并且必须更改packageA
中的每个类(糟糕!!!)。您能帮助我吗?根据安装的SDK工具的版本,您可以通过右键单击项目并转到Android子菜单来更改软件包名称。Android工具将更新对该软件包的大部分或所有引用,从而减少您需要手动更改的数量。噢。谢谢:)它解决了我的错误。但我的问题仍然让我头疼:(例如,在packageA
中,我有很多类。现在,我想首先在packageB
上运行,所以在android manifest
中,我使用com.packageB
,并且必须更改packageA
中的每个类(糟糕!!!)。您能帮助我吗?根据安装的SDK工具的版本,您可以通过右键单击项目并转到Android子菜单来更改软件包名称。Android工具将更新对该软件包的大部分或所有引用,减少您需要手动更改的数量。哦。谢谢,这对我有帮助:)但我继续遇到问题。例如,在packageA
中,我有许多类。现在,我想首先在packageB
上运行,所以在android manifest
中,我使用com.packageB
,并且必须更改packageA
中的每个类(糟糕!!!)。你能帮我吗?哦。谢谢,这对我有帮助:)但我还是遇到了问题。例如