Android:将属性值引用到string.xml中。
Android:将属性值引用到string.xml中。
考虑以下项目层次结构:
- Base(基础)
- Common(公共)
- Flix
我们有Base和Common作为库项目,我们在其他几个项目(如Flix)中使用它们。我们想在Base和Common项目中定义一些属性文件,并希望将在Base或Common级别定义的属性引用到Flix项目的string.xml文件中。
例如
假设我们有一个名为base.properties的属性文件,位于"Base/assets"文件夹下,内容如下:
app.props.cms.url=http://test.flixv2.dev.com/api
我们在Flix项目中有一个string.xml文件,其中有一个字符串资源:
在这里我们想引用该属性
我们尝试了以下方法,但没有成功:
${app.props.cms.url}
请让我们知道您的意见。
谢谢
问题的出现原因:没有使用Maven或Gradle这样的构建系统,导致出现了依赖问题。
解决方法:建议使用Maven或Gradle作为构建系统,并使用android-library-quickstart这个原型来学习如何将库作为应用程序的依赖。
以下是
如果你在使用任何一种构建系统,比如Maven或Gradle吗?这对我来说看起来像是一个依赖问题。
不,我没有使用Maven或Gradle。
我建议你开始使用它们,因为你的应用程序中使用了不同的模块。可以查看这个网站:code.google.com/p/maven-android-plugin。基本上,你需要的是android-library-quickstart这个原型,它将向你展示如何在应用程序中使用库作为依赖。
文章结束。
Android开发中,有一个问题是如何将属性值引用到string.xml文件中。有一个解决方法是在Base项目中创建一个字符串资源,并在另一个项目中引用它。具体做法是在Base项目中创建一个名为"app.props.cms.url"的字符串资源,其值为"http://test.popcornflixv2.device.screenmedia.net/api/"。然后,在另一个项目中的string.xml文件中,通过引用"cmsservice_url"字符串资源来获取该属性值,引用的方式是使用"/app.props.cms.url"。
这个解决方法的具体步骤如下:
1. 在Base项目的string.xml文件中添加以下代码:
<string name="app.props.cms.url">http://test.popcornflixv2.device.screenmedia.net/api/</string>
2. 在另一个项目的string.xml文件中添加以下代码:
<string name="cmsservice_url">/app.props.cms.url</string>
通过这种方式,另一个项目就可以引用Base项目中定义的属性值了。这种方法的优点是可以在多个项目中共享属性值,方便统一管理和修改。
问题出现的原因是在Android中,将属性值引用到string.xml文件中时遇到了问题。据说使用官方推荐的方法(在包名前添加前缀)无法解决该问题。文章中提到了两种解决方法,一种是尝试使用官方推荐的方法,另一种是使用反射的方法。具体解决方法可以参考这篇文章:android import ressources from library project。