PackageManager.NameNotFoundException

Tengo un.java archivo

 ....

 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;

 ....

   /* PackageInfo packageInfo = 
   getPackageManager().getPackageInfo(getPackageName(),0);
   curVersionCode = packageInfo.versionCode;*/

   PackageManager pm = getPackageManager();
   String pn = getPackageName();
   PackageInfo pi = pm.getPackageInfo(pn,0);
   curVersionCode = pi.versionCode;

   ....

Para comprender el error, escribí el código en cuatro líneas. El código de dos líneas está en el comentario como puede ver. Ahora que, este código no funciona y da un error dePackageManager.NameNotFoundException aquí cuando intento construir. Para mayor claridad, utilicé este código en un archivo diferente y no causó ningún error allí; así que no hay necesidad de preocuparse por el nombre del paquete. ¿Cuál es la causa de este error? También se adjunta una imagen para aclarar el error.

Para resolver este problema, también intenté así:this.getPackageManager(), getBaseContext().getPackageManager() ygetApplicationContext().getPackageManager(); Pero todo en vano.

Respuestas a la pregunta(1)

Su respuesta a la pregunta