private long getCurrentCode() {
try {
return context.getPackageManager()
.getPackageInfo(context.getPackageName(), 0).getLongVersionCode();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
Process: com.xxxxx.debug, PID: 25754
java.lang.NoSuchMethodError: No virtual method getLongVersionCode()J in class Landroid/content/pm/PackageInfo; or its super classes (declaration of 'android.content.pm.PackageInfo' appears in /system/framework/framework.jar)
at com.xxxxx.common.ApplicationUpdateTask.getCurrentCode(ApplicationUpdateTask.java:329)
at com.xxxxx.common.ApplicationUpdateTask.<init>(ApplicationUpdateTask.java:84)
String versionName = BuildConfig.VERSION_NAME;
但是现在这个推荐返回-1
!!!!!
这是我的分级配置:
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
minSdkVersion 15
targetSdkVersion 28
versionCode 66
versionName '2.0.66'
applicationId 'com.xxxxxx.yyyyy'
multiDexEnabled true
}
方法long getLongVersionCode()
在版本28中被添加到Android中;参见javadoc
它清楚地存在于您正在编译的API中,否则您将得到一个编译错误。
但例外情况说明它在运行时不存在,因此您必须运行在较旧的平台上。
String versionName = BuildConfig.VERSION_NAME;
我的猜测是您使用版本名或代码属性的方式有问题。但那只是猜测。你还没给我们看密码。
另一个需要注意的是,在API version 28之前,您可以使用packageinfo.versioncode
属性(javadoc)。这在API version 28中是不推荐的。因此,应该可以使用反射来调用GetLongVersionCode()
方法(如果可用),并返回到使用反射来访问VersionCode
属性。(或者在运行时测试build.version.sdk_int
的值,以了解平台支持什么API版本。)
或者你可以将你的应用程序的最低支持Android版本设置为28个。
Flutter:没有虚拟方法getLongVersionCode(),Sdk 29 有人知道怎么解决吗? /content/pm/packageinfo;或其超类(声明
在google play上出现此错误 defaultConfig{
问题内容: 有没有办法在nodejs应用中设置版本?我想要这样的东西 问题答案: 我发现以下代码片段最适合我。由于它用于加载,因此无论当前工作目录如何,它都可以工作。 @Pathogen提供的警告: 使用Browserify这样做会带来安全隐患。 注意不要将您的信息公开给客户端,因为这意味着您的所有依赖项版本号,构建和测试命令以及更多信息都将发送给客户端。 如果要在同一项目中构建服务器和客户端,则
8.4.1 什么是虚拟PV 虚拟PV代码允许触发特定事件时将其作为虚拟网页浏览处理,允许自定义页面的URL与页面标题。 代码如下: //只修改url stm_clicki('send', 'pageview', '/path'); //同时修改url和title stm_clicki('send', 'pageview', {'page': '/path', 'title': '标题'});
我不是百分之百肯定Avro的1.7.7版本能够读取由1.9.2或1.8.2生成的文件。所以我宁愿在meta information中保留创建文件时使用的avro版本。 但是如果不调整构建文件并创建某种资源(在gradle中这是非常简单的),我不认为这是可能的。