java– 如何获取依赖包的版本代码?

java– 如何获取依赖包的版本代码?,第1张

概述我试图获取在不同项目中编译的包的版本代码,并将其作为依赖项链接到此项目中.我经常对这两个项目进行更改,所以我想知道版本号.这里的解决方案:Howtogetthebuild/versionnumberofyourAndroidapplication?显示了如何从上下文获取版本代码,但这将产生当前项目中的包的版本代

我试图获取在不同项目中编译的包的版本代码,并将其作为依赖项链接到此项目中.我经常对这两个项目进行更改,所以我想知道版本号.

这里的解决方案:How to get the build/version number of your Android application?显示了如何从上下文获取版本代码,但这将产生当前项目中的包的版本代码,而不是依赖的版本.

这是我尝试过的代码(3-Scenarios):

public static int getPackageVersion(Context context, Class<?> tClass) {    int versionCode = 0;    //#1) Get Package name from class    String packagename = tClass.getPackage().getname();    //#2) Set Domain manually to top level package    //String packagename = "com.somedomain";    //#3) Get package name from context from this package    //String packagename = context.getPackagename();    Log.i(TAG, packagename);    try {        versionCode = context.getPackageManager().getPackageInfo(                packagename, 0).versionCode;    } catch (PackageManager.nameNotFoundException e) {        Log.e(TAG, packagename);        throw new RuntimeException();    }    return versionCode;}

#1)显示该方法最初的功能,它使用packagename作为类.结果在nameNotFound中.

#2)我手动设置依赖包的顶级packagename,这与context.getPackagename()返回的类似.结果在nameNotFound中.

#3)我使用了context.getPackagename(),代码返回了这个项目中包的版本代码 – 正如预测的那样,但不是我需要的结果.

我已经有了一个不优雅的黑客攻击,我只是将版本号作为一个字段存储在其中一个类中,但是一个合适的解决方案(如果存在的话)会很棒.

解决方法:

一个合适的解决方案是使用BuildConfig文件来存储这些值(对于每个项目/子项目).
AndroID Gradle插件已包含以下字段:

androID {    defaultConfig {        versionCode 1        versionname "1.0.0"    }}

然后使用your.package.name.BuildConfig.VERSION_name或your.package.name.BuildConfig.VERSION_CODE获取该字段

总结

以上是内存溢出为你收集整理的java – 如何获取依赖包的版本代码?全部内容,希望文章能够帮你解决java – 如何获取依赖包的版本代码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1119431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存