【问题标题】:Why my Android Library got wrong resources?为什么我的 Android 库有错误的资源?
【发布时间】:2016-06-03 10:39:09
【问题描述】:

我问如何合并两个Android项目here

最后的解决方案是使用其他项目作为库

所以我尝试了以下步骤:

  1. 创建ProA,在MainActivity.xml的TextView中输入“Project A”
  2. 创建ProB,在MainActivity.xml的TextView中输入“Project B”
  3. 将 ProB 移至 ProA/ProB
  4. 将 ProB 导入为名为 appB 的新模块
  5. 将 appB 添加到应用的依赖项中
  6. 在 ProB 的 build.gradle 中将 'com.android.application' 修改为 'com.android.library'
  7. 删除 ProB 的 build.gradle 中的 applicationId
  8. 删除 ProB 清单中 MainActivity 的意图过滤器
  9. com.proa.MainActivity 中的 com.prob.MainActivity 的 startActivity

但 com.prob.MainActivity 仍然得到错误的布局 xml 文件,屏幕将显示“项目 A”

我错过了什么?

【问题讨论】:

  • 我遇到了同样的问题,但分配不正确的资源是主调色板和库项目启动器图标(它被我在根项目中获得的未编译模块替换..)

标签: android android-layout android-library


【解决方案1】:

您必须使用 Library Project R* 文件才能从您的库 xml 文件中获取它

假设: lib包:com.library

然后这样做com.library.R.layout.main

【讨论】:

  • 那么你的意思是我应该在onCreate 的com.prob.MainActivity 中使用setContentView(com.prob.R.layout.activity_main); 吗?我刚试了,不行
  • 你应该从你想要访问 layout.xml 文件的地方 package_name.R
  • 真的不行,我尝试了几种方法,例如package_name.R,int id = getResources().getIdentifier(“main_layout“, "layout", getPackageName()); setContentView(id);,但没有人可以得到正确的资源文件。这是测试项目:ProA
猜你喜欢
  • 2021-05-01
  • 2011-03-31
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 2015-07-23
  • 1970-01-01
相关资源
最近更新 更多