0

嗨,当我使用 packageinfo 询问第一次安装时间时,我在我的应用程序中遇到了这个奇怪的错误!但仅对于某些设备,错误很少见且不经常出现。为什么会发生这种情况,是否有解决方法?

        PackageManager manager = this.getPackageManager();
        info = manager.getPackageInfo(this.getPackageName(), 0);
        vPname = info.packageName;
        vName = info.versionName;
        vVers = info.versionCode;
        installDate = info.firstInstallTime;

java.lang.NoSuchFieldError: android.content.pm.PackageInfo.firstInstallTime

minSdkVersion="7"

返回错误的一些设备的列表:

  • 擎天柱一号(雷霆)
  • LG-P920 (p920)
  • 无视 (umts_jordan)
  • 注入 (SGH-I997)
4

1 回答 1

2

这是因为在 API 9(姜饼)及更高版本中引入了“firstInstallTime”:

http://developer.android.com/reference/android/content/pm/PackageInfo.html#firstInstallTime

为了避免此类错误,建议运行 LINT 检查(例如,使用运行按钮附近的“V”按钮)。LINT 有很多错误和警告,可以帮助您获得更好的代码。你甚至可以让它检查每个保存操作的问题。

当然,即使在这件事上,它也有错误和缺失检查。

于 2013-10-07T07:45:45.460 回答