【问题标题】:android calling method from library project force closed来自库项目强制关闭的android调用方法
【发布时间】:2014-04-07 00:21:12
【问题描述】:

您好,我有一个 android 库项目 A。它的 Main Activity 包含方法 abc(String)。当我在集成项目 A 后尝试从其他项目调用此方法时,它强制关闭。我用了代码

 MainActivity a=new MainActivity();
 a.abc("");

我是否以正确的方式从其他项目的库项目活动中调用方法?请帮助我,我是android新手,在此先感谢。

【问题讨论】:

  • 你能粘贴abc函数的内容和/或一些LogCat输出吗?
  • 你的项目和库项目都在同一个位置?
  • 在此处提供您的 logcat。
  • 不要手动实例化Activitys...
  • 看到这个..,你会不会出现这样的错误..stackoverflow.com/questions/13030111/…

标签: android methods android-activity


【解决方案1】:

您不应实例化 Activity 类。 Activity 有一个生命周期,你应该在 manifest 中声明它并使用startActivity(intent)

勾选在清单文件中声明库组件

http://developer.android.com/tools/projects/projects-eclipse.html

一旦声明,您就可以启动 Activity。

Can i Create the object of a activity in other class?

引用 Raghav Sood

通过将 Activity 视为普通的 Java 类,您最终会得到一个空上下文。由于 Activity 中的大多数方法都是在其 Context 上调用的,因此您将收到空指针异常,这就是您的应用崩溃的原因。

相反,将需要从其他类调用的所有此类方法移动到实用程序类中,该类在其构造函数中接受有效上下文,然后在方法中使用该上下文来完成工作。

【讨论】:

  • @prince 我在哪里建议getInstance。你有没有完整地阅读帖子。阅读 Raghav Sood 的答案,而不是另一个
  • 我曾经在 oncreate 中调用方法。现在我怎样才能将它声明为一个类??
  • @prince 你明白我帖子的要点了吗?你不能调用另一个活动类的方法。您可以开始另一个活动。如果要调用方法,请使用 utils 类将方法放在那里,然后您可以创建该类的实例并调用该方法。 Raghav Sood 的答案是我提供的链接中最好的。我不明白为什么另一个人会从第二个中弹出来投票
  • 我得到了分数。但是我在我的 oncreate 中使用了一个名为 pop() 的方法,它用于弹出 oncreate 窗口,我在同一个活动中声明了这个方法。正如你所说,当我使用类文件来声明这个方法时,它会显示错误,因为我的活动内容在我的方法中。这就是我现在面临的问题
  • @prince 我不知道你在说什么。我不明白。祝你好运
猜你喜欢
  • 2013-11-12
  • 2014-11-19
  • 2016-08-17
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多