找不到符号PackageManager

问题描述 投票:0回答:2

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

使用的代码如下,

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
android android-package-managers
2个回答
0
投票

替换:

GetPackageManager PackageManager = PackageManager();

与:

PackageManager packageManager = getPackageManager();

您的第一行声明的是一个新变量,其name'PackageManager'为type'GetPackageManager',您尝试将不存在的函数“PackageManager”的结果分配给其中,而Android PackageManager的类型是“PackageManager”(无 Get 前缀),而 Activity 检索它的公共方法称为“getPackageManager”,这只是一个不幸的拼写错误的情况:)


0
投票

你有很多问题,例如:

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

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

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

现在只需将

GetPackageManager PackageManager = PackageManager();
更改为
PackageManager packageManager = getPackageManager();

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

 import android.app.Activity;

而不是

 android.app.Activity import;

所有人都一样

© www.soinside.com 2019 - 2024. All rights reserved.