【问题标题】:Cannot launch activity which extends MapActivity无法启动扩展 MapActivity 的活动
【发布时间】:2012-02-14 18:02:17
【问题描述】:

活动(ShowPos)在扩展 MapActivity 时无法启动。如果我更改为扩展 Activity,它会启动。

在我将项目的 java 代码复制/粘贴到新工作区中的新项目之前,它确实有效,突然 Eclipse 莫名其妙地无法再找到任何 Android API,并且无法重新导入。类似的事情以前也发生过几次,Eclipse 似乎很普通。但是复制/粘贴以前一直有效,至少有一段时间。现在它警告没有这样的错误。

我确实有一个 API 密钥,它以前可以使用。 maps.jar 现在位于项目资源管理器中的项目下的 Google API 2.2 下。 编辑注意到项目中的任何文件中都没有错误。 启动时,LogCat 以:


 - D dalvikm Calling exit(1)
 - W dalvikm Unable to resolve superclass of Lintrax/three/ShowPos; (35)
 - W dalvikm Link of class 'Lintrax/three/ShowPos;' failed
 - D AndroidRuntime Shutting down VM
 - W dalvikm threadid=1: thread exiting with uncaught exception
   (groupnr)
 - E AndroidRuntime FATAL EXCEPTION: main

我的项目名称现在是“intrax.three”。为什么要加一个“L”呢? 清单确实包含:


    uses-library android:name="com.google.android.maps"
    uses-permission android:name="android.permission.INTERNET"

(无法在此处粘贴 Manifest 文件)

感谢任何有关如何帮助 Eclipse 查找内容的帮助!

【问题讨论】:

  • 如果您需要帮助,至少应该发布您的代码或 logcat。
  • 我用 keytool 获得了一个新的 MD5 密钥,以及一个来自 Google 的新 API 密钥。但这和上次一样。每个项目不应该是独一无二的吗?

标签: android launch mapactivity


【解决方案1】:

转到项目 -> 首选项 -> Android -> 项目构建目标并确保您创建了一个使用 Google API 的项目

【讨论】:

  • 谢谢你提醒我,但是是的,我肯定已经这样做了!我已经做了好几次了。它通常会有所帮助。上次 Eclipse 在我尝试从 2.2 切换到 2.3.3(使用 Google API)后停止查找任何 API。现在,我已将所有内容复制到一个新的 Google API 2.2 项目中,上次使用它。但现在它甚至没有启动,尽管没有显示错误。
【解决方案2】:

如果你已经定义了 Internet 权限和使用库

<uses-library android:name="com.google.android.maps" /> in your manifest.

还要确保项目目标设置为 google APi。

第三个重要的事情是您的包级别需要更正并再次构建项目,而无需明确提供任何 map.jar 库。 仅使用 google APi 内置 ma​​ps.jar 并创建扩展 MapActivity 的新活动(也在清单中声明)。

【讨论】:

  • 应该在 里面
  • 继续:那是我的错误。 应该在 Manifest 中的 之外。我把这两者弄混了,不管我怎么看都看不到我的错误。现在一切正常!谢谢大家!
  • 我必须强调的是清单中标签的PLACEMENT对于像我这样的初学者来说是个大问题。我见过类似的问题,但没有任何人了解任何类似的答案。所以下一次,强调标签在清单中的位置。
【解决方案3】:

我已关注MapView tutorial,它运行良好,没有任何错误。

有问题的错误是link error,其中Dalvik VM 无法找到您的班级。这意味着这里给出的所有建议(uses-library、互联网许可、将 Google API 设置为构建目标)甚至还没有出现。链接错误意味着 Android 操作系统无法找到您的班级。所以,我建议你尝试创建一个干净的项目,在其中从Eclipse 创建新的Class,然后粘贴代码 sn-p 而不是粘贴文件。

顺便说一句,L 用于标识Object。参考:Java Identifiers

编码愉快!

【讨论】:

  • 实际上,我已经将代码而不是文件粘贴到干净的新项目中。但问题是我在清单中放错了 标记。见下文。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多