找不到符号PackageManager

时间:2014-01-29 12:20:09

标签: android android-package-managers

我正在尝试创建一个非常简单的代码来从另一个应用程序打开一个应用程序。

使用的代码如下,

android.app.Activity import;
android.content.Context import;
android.content.Intent import;
android.content.pm.PackageManager import;

public static void LaunchApplication()
{
GetPackageManager PackageManager = PackageManager();
startActivity(packageManager.getLaunchIntentForPackage("antay.cfsatv30localization"));
}

...但是当我编译时,我得到以下错误: 错误返回:

src\antay\startandstopapp\wdgen\GWDCPCOL_GlobalProcedures.java:106: error: cannot find symbol
getPackageManager();

^

symbol:   method getPackageManager()
location: class GWDCPCOL_GlobalProcedures

===================

src\antay\startandstopapp\wdgen\GWDCPCOL_GlobalProcedures.java:107: error: cannot find symbol
startActivity(packageManager.getLaunchIntentForPackage("antay.cfsatv30localization"));

^

symbol:   method startActivity(Intent)
location: class GWDCPCOL_GlobalProcedures


2 errors

2 个答案:

答案 0 :(得分:0)

取代:

GetPackageManager PackageManager = PackageManager();

使用:

PackageManager packageManager = getPackageManager();

您的第一行声明的是一个新变量, name 'PackageManager'为 type 'GetPackageManager',您尝试分配不存在的函数的结果“PackageManager”到,而Android PackageManager的类型是'PackageManager'(没有Get-prefix),而Activity的公共方法来检索它,被称为'getPackageManager',只是一个不幸的拼写错误的情况:)

答案 1 :(得分:0)

你有很多问题,例如:

  • 使用的GetPackageManager不是您可以听说过的类名。
  • 使用与您在同一上下文中使用的类完全相同的名称创建变量。
  • 在不使用new的情况下创建对象。

此外,您没有遵循重要的命名约定:您绝不应为函数或字段使用大写的名称。大写的名称适用于几乎所有语言的类。为什么?因为它看起来更好,并且因为你避免错误,比如PackageManager = PackageManager()。在这里,您希望使用类名和具有相同名称的var。您的LaunchApplication也应该是LaunchApplication。

我建议你在继续学习android之前先阅读一些关于OOP的教程,因为很明显你缺少基础知识,而且你会遇到很多问题。

目前,只需将GetPackageManager PackageManager = PackageManager();更改为PackageManager packageManager = getPackageManager();

即可

而且,我不知道你是否只是粘贴错了,但是文件开头的导入应该是

 import android.app.Activity;

而不是

 android.app.Activity import;

和他们所有人一样