我使用此代码显示App编译日期:
ApplicationInfo ai = a.getPackageManager().getApplicationInfo(a.getPackageName(), 0);
ZipFile zf = new ZipFile(ai.sourceDir);
ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF");
long time = ze.getTime() + (3600000 * 2);
Log.i("date", new SimpleDateFormat("HH:mm:ss dd.MM.yyyy").format(new Date(time)));
zf.close();
昨天一切都很好,但今天(在Android Studio升级之后???)每次显示
02:00:00 1979年11月30日
??? 我已经完成了Cleaned和Rebuilt项目。 这有什么不对?
答案 0 :(得分:1)
好的我有一个答案:How to write build time stamp into apk
最佳选择是在Gradle中使用Timestamp
android {
defaultConfig {
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
}
}
Date buildDate = new Date(BuildConfig.TIMESTAMP);
谢谢:)
答案 1 :(得分:1)
根据response #3 on this Google Issue,只要在Gradle属性中设置了“ android.keepTimestampsInApk = true”,获取构建日期的ZipFile方法仍然可以使用。
除非设置了该属性,否则Gradle会故意将构建时间戳归零。