Android apk 构建的条件资源包含/排除

2024-04-08

我不断回到这个问题,因为似乎没有一个干净的解决方案。有没有人有一个好的策略来从 Android 子项目中排除资源?

我有两种情况:

1 - 基础库项目具有 en、es 等本地化文件。

--子项目1使用所有本地化,一切都很好

--子项目 2 仅本地化为英语,但由于父资源的原因,最终的 .apk 会有部分本地化(尽管 ADT19 左右添加了 Lint 规则来警告/阻止您这样做)。

我现在唯一的解决方案是拥有一个单独的父库用于本地化,并且仅将其包含在子项目 1 中。如果您有很多库项目,这将是一个很大的痛苦。

2 - 排除特定于构建的资源。我有一些图像仅用于我的应用程序的 Nook 特定构建,这些图像由标志触发。条件代码效果很好,但资源始终包含在内。

我不想为我的每一个应用程序创建另一个子项目。有什么方法可以设置构建/编译标志来删除特定的图像资源,这样它们就不会进入最终的 .apk 中?

第二个问题可能是针对我的,但令我惊讶的是我找不到关于第一点的任何好的讨论。没有其他开发人员只本地化某些应用程序吗?还是大多数人都忽视了这个问题?


1 - 基础库项目具有 en、es 等本地化文件。

您有两个项目使用该库,并且只有其中一个需要所有翻译。因此,这些翻译可能位于使用库并需要翻译的项目中,而不是位于库本身中。这与自定义库资源的任何其他项目没有什么不同(例如,替换图标、替换布局)。

现在,一旦您开始进行更复杂的混合(例如,两个项目需要翻译,而第三个项目则不需要),您就会开始遇到问题。

排除特定于构建的资源。我有一些图像仅用于我的应用程序的 Nook 特定构建,这些图像由标志触发。条件代码效果很好,但资源始终包含在内。

Xav 和我聊了一些关于条件资源的话题在这个问题上 http://code.google.com/p/android/issues/detail?id=30895。他的重点是调试与生产(资源相当于BuildConfig.DEBUG),但听起来更灵活的东西是可能的。

这两件事都可以通过自定义发布构建脚本来处理。在正常的调试版本中,您可以不理会它;在生产构建中,让 Ant 脚本处理项目的副本,在编译、签名和压缩对齐之前删除不需要的目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android apk 构建的条件资源包含/排除 的相关文章

  • Android 添加新日历

    我已经检查了所有从 Android 应用程序中创建新日历的方法 我见过的唯一方法是在最新的 api 版本中使用新的 Calendar API 但这似乎只有在您使用时才有效CalendarContract ACCOUNT TYPE LOCAL
  • 是否可以将 Mozilla Persona (BrowserID) 与移动应用程序一起使用?

    是否有可能easily use Mozilla 角色 http www mozilla org en US persona 浏览器ID https developer mozilla org en BrowserID Why Browser
  • 如何在列表视图中每行右侧显示 4 个图标

    我想在列表视图的每一行右侧设置 3 个图标 我正在制作购物应用程序 我希望在列表视图中用户选择任何产品时 这样他 她可以以 3 种方式查看产品 就像用户选择图标一样1 这样用户可以在网格视图中看到产品 如果用户选择图标 2 这样用户可以在图
  • 如何更改 Kindle Fire 上 /mnt/SDcard 文件夹的读/写权限?

    我正在尝试在 Android 中开发 Amazon In app 为此 我从该网站下载示例代码https developer amazon com sdk in app purchasing sample code button click
  • 手电筒打开时 Android 相机的奇怪行为

    我有以下 android 代码 这里用伪代码编写 mCamera configAndInitialize all I want to do before taking picture mCamera startPreview mCamera
  • 所选设备不兼容 - Android Studio

    我之前已经解决了这个问题 但现在不能 我需要永久修复 在测试我的应用程序时 Android Studio 中的一切都很顺利 我现在遇到了 所选设备不兼容 的问题 当我去运行应用程序时 我想知道如何阻止它读取我手机的 API 作为 1 而不是
  • NotificationCompact.Builder 和 ActionBarSherlock 的问题

    在下面的代码中 Eclipse发现错误 The method build is undefined for the type NotificationCompat Builder 在添加之前一切正常ActionBarSherlock htt
  • 相机 java.lang.RuntimeException:setParameters 失败

    我使用创建了一个自定义相机应用程序this https github com davidgatti dgCam源代码 但在少数设备上 例如高分辨率设备 我得到 RuntimeException setParameters failed 我面
  • 在 Android 中通过摇动打开/关闭屏幕

    我正在制作一个应用程序 需要在用户摇动手机时打开 关闭屏幕 到目前为止 我已经有了一个 SensorEventListener 它可以按照答案中的建议监听震动这个问题 https stackoverflow com questions 23
  • 在特定时间启动应用程序

    我想知道是否有可能 以及如何 在特定时间启动我的应用程序 就像在特定时间响起的闹钟一样 假设我希望我的应用程序在早上 8 点启动 这可行吗 您可以使用 AlarmManager 来完成此操作 这是一个简短的示例 首先你需要设置闹钟 Alar
  • 使用 Android 浏览器的 HTML5 离线存储

    我正在研究如何使用 Android 设备来创建需要离线使用的网站 我还没有找到很多关于Android浏览器如何处理HTML5的localStorage和WebSQL的信息 有人知道这些的尺寸限制吗 它们是否可以更改 我知道移动 Safari
  • 服务中的膨胀视图显示视图,但不显示布局内的 ImageView

    我已经成功地在服务中扩展了我的布局 但是它没有显示ImageView在 的里面Inflated Layout我不知道为什么 我设置了一个onClickListener在图像视图上 它工作得很好 当我单击绿色方块时记录并停止服务 唯一的问题是
  • Android 4.2.1 错误的字符字距调整(间距)

    使用时Canvas and drawText 方法我在 Android 4 2 1 上看到了不同的渲染 4 2 以下 对于 Android 4 2 1 Nexus 7 我得到 正如你所看到的文字消耗很紧 似乎是4 2 1中引入的字距调整问题
  • 我如何访问警报内容提供商

    我正在尝试访问警报提供商以获取所有启用的警报信息 所以我写了这个 public static final Uri CONTENT URI Uri parse content com android deskclock alarm Conte
  • 如何在android listview或线性布局中动态设置marginBottom?

    friends 我想使用java代码或动态设置layout marginBottom 在列表视图或线性布局中 有人指导我如何实现这一目标吗 任何帮助 将不胜感激 ListView lst getListView LinearLayout L
  • 使用 SearchView 后重置操作栏

    我在用着SearchView小部件以在我的应用程序中启用搜索 首次单击搜索图标后 SearchView小部件会扩展到搜索字段 并且应用程序图标旁边会显示 后退 箭头 如果我单击应用程序图标 操作栏将恢复到初始状态 没有 后退 箭头 并且Se
  • RxJava - 链接请求和更新 UI

    我遇到的问题是这样的 我需要向服务器执行几个请求 下一个请求取决于前一个请求的结果 它们看起来像这样 缩写 Observable
  • Marshmallow 中的手电筒控制

    我对最新 Marshmallow 版本中的相机 更具体地说是手电筒 有疑问 在任何棉花糖之前的版本上 我需要执行以下操作来打开 关闭闪光灯 private void turnFlashOn final Camera camera int f
  • TextView 用字母打乱了我的话

    我的要求 创建 传入气泡 其宽度按内容排列 最大宽度为 90 我有这个标记
  • Android Vector Drawable 不支持。如何修复它?

    尝试从 AndroidStudio 2 2 Ubuntu 14 04 的本地 svg 文件生成矢量资源时出现此错误 Could not generate a preview In icon svg ERROR line 6

随机推荐