【问题标题】:Issue with same package names in androidandroid中相同包名的问题
【发布时间】:2012-09-06 08:16:09
【问题描述】:

说明


我有两个 android 应用程序,这里是它们所在的包。

  • com.android.app.sample1
  • com.android.app.sample2

如你所知,每个应用程序都有自己的 res 文件夹,如果我想为 sample1 获取一些字符串,我必须写 com.android.app/sample1.R.string.some_string,如果为 sample2,则为 com.android.app/sample2.R.string.some_string 现在如果我有其他项目的包

  • com.android.app.testingsamples

我的sample1\srcsample2\src 作为资源链接到testingsamples,但是当我将src 链接到 testingsamples 出现类似“cant find resource R”的错误。

我试图解决这个问题的方法


我尝试将所有应用程序包更改为相同的 com.android.app,在这种情况下,当我将应用程序作为资源链接到 testingsamples 时,一切正常,R相同且位于com.android.app.R 中的所有人,但这不是问题,因为当我尝试安装 sample1sample2 分别安装以上一个,因为它们具有相同的包名。

问题


有什么想法我可以为所有项目 R 将位于同一个地方吗?

【问题讨论】:

    标签: java android linked-list resources classpath


    【解决方案1】:

    您的 src 文件夹中的包名称与应用程序的 Manifest.xml 中定义的包名称不同。通常,当您在 Eclipse 中创建一个新项目时,它们是平等的,但并非必须如此。

    您的所有项目都可以在其 src 文件夹中使用相同的包结构。但是为了向 Android 显示两个应用程序 sample1 和 sample2 是不同的应用程序,它们在清单文件中的包名称必须不同。

    更新

    对不起,我意识到这并不能解决问题,因为 R 类是在 den manifest 中定义的包名下生成的。

    【讨论】:

    • 这个。您的 AndroidManifest.xml 定义了要运行的“主”,并且需要指定哪些类是同一应用程序的一部分。
    • @Flo 但是 R 从清单中获取路径,所以如果在清单中我将路径设置为 com.some.path R 将是 com.some.path.R 这对我来说不是解决方案,因为我需要 R 在同一在这两个项目中的位置。
    • 如果你真的像你说的那样将它们融合到一个应用程序中,你确定你知道后果吗?想象一下当您启动 'adb install myApk1.apk; 时您想要发生什么; adb install myApk2.apk',尤其是'adb uninstall my.package.name'。每个应用程序只有一个根包名称 - 如果将两个应用程序绑定在一起,它们将只是一个应用程序。
    • @ViToBrothers 对不起,你是对的。我把这个弄混了,R类确实是在Manifest中定义的包名下生成的。
    • 也许您应该尝试@Laucia 的解决方案,将两个应用程序的代码提取到其自己的库项目中。因此,您可以在一个测试应用程序中测试所有内容,并且每个“真实”应用程序都使用其库项目。
    【解决方案2】:

    我的 sample1\src 和 sample2\src 作为资源链接到 testingsamples,但是当我将 src 链接到 testingsamples 时出现错误 比如出现“找不到资源R”。

    这是因为为 R 生成的 java 文件在 sampleX\bin 中。 您可以尝试将这些添加到您的路径中以解决您的问题。

    如果 sample1 和 sample 2 不是单独的应用程序,更好的方法是制作 sample1 和 sample2 android 库并将它们链接到您的 testingsamples。因此 sample1 和 sample2 R 都融合到 testingsamples 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 2015-08-17
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多