4

我想构建一个 android 库(jar 文件)。jar 文件需要本地化。就像我有一堂课:

class MyMessageService
{
    //Needs to return different languages message according to locale
    String getMessage1(); 
}

我试图打包res/values/string.xmlR.class放在罐子里。

但是在我引用 jar 的主应用程序中,我调用

 String s = this.getResources().getString(mylibrary.localize.R.string.hello); 

我得到了来自我的主要项目的“s”(资源 id 冲突)。

有没有办法创建一个支持本地化的android库?我不能让主应用程序导入我的图书馆资源,因为我的图书馆应该单独发货。

4

2 回答 2

1

你在 Android 上做 lib 的方式是错误的。我也遇到了像你一样在不同项目之间重用 UI 组件的问题只需给 Android Library Project 一个尝试(lib.jar.path 为包示例),构建 lib proj,现在你得到生成 R 类,将 lib proj 引用到您的应用程序 proj(在项目属性 Android 选项卡中),然后使用 lib.jar.path.R 查找您的字符串或其他内容。

于 2013-01-19T10:32:43.227 回答
0

不幸的是,这不能用 jar 以标准方式完成。但是您可以自己实现本地化 - 当前用户区域设置可以通过 Locale.getDefault() 检索。之后,您可以构建一个开关并返回对应于语言环境字符串(它可以简单地保存在代码中或某些外部文件中)。

于 2014-02-05T09:34:34.133 回答