всякий раз, когда я пытаюсь войти в свои настройки, logcat показывает мне эту ошибку, и я не знаю, что не так - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь перечислить все установленные приложения на моем параметре Listview, но всякий раз, когда я пытаюсь войти в него, он зависает и закрывается, я не знаю почему, кажется, все в порядке.Я даже попробовал некоторые готовые ответы, но logcat продолжает показывать мне эту ошибку.

2019-02-01 23:27:17.563 7458-7479/com.example.sony.econet1 E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.sony.econet1, PID: 7458
java.lang.RuntimeException: An error occurred while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:318)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:761)
 Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
    at com.example.sony.econet1.My_Settings$LoaddAppsInfoTask.doInBackground(My_Settings.java:79)
    at com.example.sony.econet1.My_Settings$LoaddAppsInfoTask.doInBackground(My_Settings.java:65)
    at android.os.AsyncTask$2.call(AsyncTask.java:304)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)

это мой AsyncTask

class LoaddAppsInfoTask extends AsyncTask <Integer, Integer,List<AppInfo>>
{

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        //loaded();
        //loadappsinfo
    }

    @Override
    protected List<AppInfo> doInBackground(Integer... params) {

        List<AppInfo> apps=new ArrayList<>();
        PackageManager packageManager =getPackageManager();
        List<ApplicationInfo> infos = packageManager.getInstalledApplications(params[0]);


        for (ApplicationInfo info:infos)
        {
            if (mIncludeSystemApps && (info.flags & ApplicationInfo.FLAG_SYSTEM) == 1)
            {
                continue;
            }

            AppInfo app = new AppInfo();
            app.info = info;
            app.label = (String)info.loadLabel(packageManager);
            apps.add(app);
        }

        return null;
    }

    @Override
    protected void onPostExecute(List<AppInfo> appInfos) {
        super.onPostExecute(appInfos);
        listView.setAdapter(new Appadapter(My_Settings.this,appInfos));
        Snackbar.make(listView,appInfos.size() + "Applications loaded", Snackbar.LENGTH_LONG).show();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...