Я получаю сообщение об ошибке в методе getPackageManager с использованием asynctask - PullRequest
0 голосов
/ 12 ноября 2018

Получение ошибки здесь

 try {
           PackageManager pm = MyApplication.getInstance().getPackageManager();
           PackageInfo packageInfo = process.getPackageInfo(MyApplication.getInstance(), 0);
           info.name = packageInfo.applicationInfo.loadLabel(pm).toString();
     } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            continue;
 }

ошибка в журнале:

  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.app.Application.getPackageManager()' on a null object reference
    at com.example.bugfreeram.bugfreeanti.external.ProcessScanTask.doInBackground(ProcessScanTask.java:52)
    at com.example.bugfreeram.bugfreeanti.external.ProcessScanTask.doInBackground(ProcessScanTask.java:21)

Класс MyApplcication выглядит так:

public class MyApplication extends Application {

    private static MyApplication sInstance;

    public static Application getInstance() {
       return sInstance;
    }

   @Override
   public void onCreate() {
       super.onCreate();
       sInstance = this;
   }
}

Я перепробовал все ответы, так как попал в StackOverflow, помогите, пожалуйста. заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Измените AndroidManifest.xml и добавьте MyApplication Класс к android:name

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.packagename">
.
.

<application
    android:name=".MyApplication"
    .
    .

</application>

0 голосов
/ 12 ноября 2018

Используйте объект Context, чтобы получить PackageManager. как это:

PackageManager manager = context.getPackageManager();

...