【问题标题】:Getting "package R does not exist" when building from command-line从命令行构建时获取“包 R 不存在”
【发布时间】:2014-02-20 03:04:35
【问题描述】:

我使用 Eclipse 在一个单独的项目上创建了一个活动。当我将它导入我的 cocos2d-x android 项目并使用python build_native.py(基本上是使用 NDK 构建应用程序)和ant debug 构建项目时,我收到一条错误消息:

error: package R does not exist

指向线:

setContentView(R.layout.some_activity);
                ^

我已经在我的 cocos2d-x 项目中添加了res/layout/some_activity.xml 以及清单条目:

<application
    <!-- <application> tag info --> >
    <activity
        <!-- cocos2d-x native activity --> >
    </activity>

    <!-- the activity I imported -->
    <activity
        android:name="com.mycompany.myapp.SomeActivity"
        android:label="" 
        android:theme="@android:style/Theme.Dialog"
        android:excludeFromRecents="true" 
        android:noHistory="true" 
    />
</application>

我还在src 文件夹中复制了所需的*.java 文件(在完全相同的文件夹结构中)。 我还尝试手动清理(通过删除bingenobjassets 文件夹)并通过ant clean。我没有使用 Eclipse 构建,仅从命令行构建。

编辑:我还尝试在SomeActivity.java 上添加import com.mycompany.myapp.R;import com.mycompany.R;,但仍然没有解决。

如何解决此错误?我还缺少其他步骤吗?

【问题讨论】:

  • 您的 xml 文件中可能存在一些错误。如果是这样,则无法生成 R.java
  • 你能告诉我 XML 中的一些错误吗?我很确定语法是正确的。源项目和cocos2d-x项目的唯一区别是,在源项目中,main activity和SomeActivity在同一个包中,而在cocos2d-x项目中,它们在不同的包中。
  • Eclipse 可以帮你自动检测语法错误
  • 我在 Eclipse 中进行了活动(在一个单独的项目中),当我完成它时,我将它导入到我的 cocos2d-x 项目中(我不使用 Eclipse),所以我我确定我的 XML 语法正确。

标签: android android-ndk cocos2d-x


【解决方案1】:

我必须导入 cocos2d-x 项目的包名,而不是导入的活动的包名。

例如,如果你的 cocos2d-x 项目的包名是com.mycompany.cocosapp,而你导入的活动的包名是com.mycompany.myapp,则导入com.mycompany.cocosapp.R而不是com.mycompany.myapp.R

【讨论】:

    【解决方案2】:

    删除bin文件夹并重建你需要的bin文件夹,使用ant构建它,然后运行它。

    【讨论】:

      猜你喜欢
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      相关资源
      最近更新 更多