2014-01-29 62 views
-1

我想創建一個非常簡單的代碼來從另一個應用程序打開一個應用程序。找不到符號PackageManager

使用的代碼如下,

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 

回答

0

取代:

GetPackageManager PackageManager = PackageManager(); 

有:

PackageManager packageManager = getPackageManager(); 

你的第一行聲明與「GetPackageManager」的「PackageManager」,你嘗試分配一個不存在的結果,一個新的變量函數「PackageManager」,而Android PackageManager的類型是'PackageManager'(沒有Get-前綴)和Activity的公共方法來檢索它,被稱爲'getPackageManager',只是一個不幸的錯別字的情況:)

1

你有人例如:

  • 使用GetPackageManager,它不是您可以聽到的類名。
  • 創建一個變量,其名稱與您在相同上下文中使用的類完全相同。
  • 創建一個對象而不使用新的。

此外,您不遵循重要的命名約定:您不應該爲函數或字段使用大寫字母的名稱。大寫的名字用於幾乎所有語言的類。爲什麼?因爲它看起來更好,並且因爲你避免了錯誤,比如PackageManager = PackageManager()。在這裏你希望使用一個類名和一個相同的變量。你的LaunchApplication也應該是LaunchApplication。

我建議你在繼續學習android之前首先閱讀關於OOP的一些教程,因爲很顯然你錯過了基本知識,並且會遇到很多問題。

現在,只是改變GetPackageManager PackageManager = PackageManager();PackageManager packageManager = getPackageManager();

而且,我不知道,如果你只是貼錯了,但在文件開頭的進口應該是

import android.app.Activity; 

,而不是

android.app.Activity import; 

,並與他們同