当前位置: 首页 > 知识库问答 >
问题:

Android如何使用gradle文件中的字符串资源

宗烨赫
2023-03-14

在这一页上,写着:

versionName —用作向用户显示的版本号的字符串。此设置可以指定为原始字符串或对字符串资源的引用。

我想使用资源作为版本号。类似于@string/version。

有什么办法?

谢谢

朱利安

共有2个答案

仉峻
2023-03-14

还有一个类似的问题已经得到了回答-Android Gradle从strings.xml读取应用程序名称@SamuilYanovski提供使用gradle这样的配置文件。属性,而不是尝试从gradle文件访问Android资源。

麹飞航
2023-03-14

我使用@Yaroslav的答案(https://stackoverflow.com/a/37432654/6711554)创建了方法。下面是从字符串文件设置包名称的代码。

def getPackageName() {
  try {
     def stringsFile = file("./src/main/res/values/string.xml")
     return new XmlParser().parse(stringsFile).string.find { it.@name.equals 'your_package_name' }.text()
  }catch(e){
     println(e)
     return "default.packagename"
  }
}

然后用它就像

 applicationId getPackageName()

你可以从你的任何资源文件中读取你的gradle中的任何字符串。

 类似资料:
  • 问题是:如何替换BuildVariant的字符串资源? 我尝试了以下方法(在本文中描述): 但是使用这个,我得到了这个错误:

  • 我通过组合其他两个字符串在java中制作了一个字符串,但我如何在android Studio的xml文件中使用该字符串。我是android开发的新手。

  • 问题内容: 我的代码是: 但是我在Eclipse中收到“无法从Context类型对非静态方法getString(int)进行静态引用”。我正在尝试本地化我的应用程序(将所有的硬编码字符串放入资源中),因此我在哪里: 我以前有一个硬编码的字符串,很好。 我不确定这里发生了什么(Java noob)。谁能启发我? 非常感谢 巴兹 问题答案: 只需使用此代替: makeText(Context cont

  • 我有一个简单的平面文件,如下所示: 禁止使用的文字 文字1 字6 文字3 然后我将从像这样的表中的列值中删除这些单词(单词使用';'分隔): 原始列值 文字1;文字5;文字8;文字2;文字6 单词2;单词4;单词1;单词0;单词9 //等等 我使用OLE DB Source从SQL读取表并进行一些转换,并使用脚本组件删除这些单词。我可以使用平面文件源来读取禁止的单词,但如何在脚本组件中使用它们,因

  • 问题内容: 我想在编译代码之前替换Config.java文件中的几行。我所能找到的就是在复制过程中通过过滤器解析文件。一旦我必须将其复制,就必须将其保存在某处- 这就是我寻求解决方案的原因:在替换行时复制到临时位置>删除原始文件>将重复的文件复制回到原始位置>删除临时文件。有更好的解决方案吗? 问题答案: 也许您应该尝试使用类似ant的replaceregexp的方法: 此任务将用替换所有的出现。

  • 我想替换配置中的几行。编译代码之前的java文件。我所能找到的只是在复制过程中通过过滤器解析文件。一旦我必须复制它,我就必须把它保存在某个地方——这就是为什么我要寻找解决方案:在替换线路的同时复制到临时位置