【问题标题】:How to solve java.lang.NoSuchMethodError: android.content.pm.PackageManager.currentToCanonicalPackageNames如何解决 java.lang.NoSuchMethodError: android.content.pm.PackageManager.currentToCanonicalPackageNames
【发布时间】:2011-10-29 16:17:46
【问题描述】:

我遇到了这个异常

01-03 00:28:43.465 E/AndroidRuntime(13556): java.lang.NoSuchMethodError: android.content.pm.PackageManager.currentToCanonicalPackageNames
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherProvider$DatabaseHelper.addAppShortcut(LauncherProvider.java:632)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherProvider$DatabaseHelper.loadFavorites(LauncherProvider.java:596)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherProvider$DatabaseHelper.onCreate(LauncherProvider.java:253)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherProvider.query(LauncherProvider.java:111)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at android.content.ContentProvider$Transport.query(ContentProvider.java:130)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at android.content.ContentResolver.query(ContentResolver.java:202)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherModel$DesktopItemsLoader.updateShortcutLabels(LauncherModel.java:1134)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherModel$DesktopItemsLoader.load_workspace(LauncherModel.java:877)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at com.android.DL_launcher.LauncherModel$DesktopItemsLoader.run(LauncherModel.java:864)
01-03 00:28:43.465 E/AndroidRuntime(13556):     at java.lang.Thread.run(Thread.java:1096)

使用此方法时

android.content.pm.PackageManager.currentToCanonicalPackageNames(String[])

根据the dev doc

问题发生在设备 Moto Milestone 上,Android 版本为 2.1-update1。

这是因为Moto修改了ROM吗?

感谢任何建议。

【问题讨论】:

  • 您遇到的具体错误是什么?
  • @KurtisNusbaum 我已经更新了详细的错误日志供您参考:)

标签: android milestone


【解决方案1】:

您尝试使用的方法是在 2.2(版本 8)中引入的,因此对于 2.1 设备,您不太可能找到它。

在尝试使用调用该方法的类或使用反射做一个时髦的解决方法之前检查构建版本?

【讨论】:

  • 是的,这就是问题所在。也就是说,如果您需要 API 8 方法,则需要 API 8。如果您不想使用 API 8,请不要使用 API 8+ 方法。
猜你喜欢
  • 1970-01-01
  • 2016-02-05
  • 2018-06-22
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
  • 2018-03-26
  • 2013-01-22
  • 2022-12-30
相关资源
最近更新 更多