Сбой приложения при установке с использованием apk. (ошибка исключения нулевой точки)

#android-studio #nullpointerexception

#android-studio #исключение nullpointerexception

Вопрос:

Мое приложение запускает сглаживание в Android studio и извлекает данные json в режиме рециркуляции. но когда я устанавливаю его на устройство с помощью .apk, он выходит из строя и выдает ошибку исключения nullpointexception при использовании collections.addall. вот код, в котором я добавляю данные в список. Я уже инициализировал список

 public
class Fragment11 extends Fragment {
    private AdapterHome adapter;
    private LinearLayoutManager manager;
    private final List<VideoYT> videoList = new ArrayList<>();
    private boolean isScroll = false;
    private int currentItem, totalItem, scrollOutItem;
    private String nextPageToken = "";

    public Fragment11() {
        // Required empty public constructor
    }


    @Override
    public
    View onCreateView(LayoutInflater inflater, ViewGroup container,
                      Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_11, container, false);
        // Inflate the layout for this fragment

        RecyclerView rv = view.findViewById(R.id.recyclerView);
        adapter = new AdapterHome(getContext(),videoList);
        manager = new LinearLayoutManager(getContext());
        rv.setAdapter(adapter);
        rv.setLayoutManager(manager);


        rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL){
                    isScroll = true;
                }
            }
        @Override
        public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            currentItem = manager.getChildCount();
            totalItem = manager.getItemCount();
            scrollOutItem = manager.findFirstVisibleItemPosition();
            if (isScroll amp;amp; (currentItem   scrollOutItem == totalItem)){
                isScroll = false;
                getJson();
            }
        }
    });

        if (videoList.size() == 0){
        getJson();
    }

        return view;
}

    private void getJson() {

        String url = YoutubeAPI.BASE_URL   YoutubeAPI.sch   "key=" getResources().getString(R.string.Developer_Key)   YoutubeAPI.chid1   YoutubeAPI.mx   YoutubeAPI.ord1
                  YoutubeAPI.part;
        if (nextPageToken != ""){
            url = url   YoutubeAPI.NPT   nextPageToken;

        }
        if (nextPageToken == null){
            return;
        }
        Call<ModelHome> data = YoutubeAPI.getVideo().getHomeVideo(url);
        data.enqueue(new Callback<ModelHome>() {
            @Override
            public void onResponse(Call<ModelHome> call, Response<ModelHome> response) {
                if (response.errorBody() != null){
                    Log.w(TAG, "onResponse: "   response.errorBody() );
                    try {
                        Toast.makeText(getContext(), response.errorBody().string(), Toast.LENGTH_SHORT).show();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else {
                    ModelHome mh = response.body();
                    assert mh != null;
                    videoList.addAll(mh.getItems());
                    adapter.notifyDataSetChanged();
                    if (mh.getNextPageToken() != null){
                        nextPageToken = mh.getNextPageToken();
                    }
                }
            }

            @Override
            public void onFailure(Call<ModelHome> call, Throwable t) {
                Log.e(TAG, "onFailure: ", t);
                Toast.makeText(getContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    }



    }
 

и это ошибка

 2020-11-27 08:40:19.320 7050-7050/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.currentmedia.cokestudio, PID: 7050
    java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference
        at java.util.ArrayList.addAll(ArrayList.java:588)
        at e.b$b.a(:10)
        at j.l$b$a$a.run(Unknown Source:37)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:7025)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
2020-11-27 08:40:20.300 2733-2850/? E/IptablesRestoreController: [iptables debug]iptables-restore execute *filter
    -D fw_powersave -m owner --uid-owner 99047 -j RETURN
    COMMIT
2020-11-27 08:40:20.314 2733-2850/? E/IptablesRestoreController: [iptables debug]iptables-restore execute done *filter
    -D fw_powersave -m owner --uid-owner 99047 -j RETURN
    COMMIT
    , res : 0
2020-11-27 08:40:20.317 2733-2850/? E/IptablesRestoreController: [iptables debug]iptables-restore execute *filter
    -D fw_powersave -m owner --uid-owner 10434 -j RETURN
    COMMIT
 

Пожалуйста, предложите мне какое-нибудь решение.

Комментарии:

1. mh.getItems() виновник. Каков его возвращаемый тип?

2. это список массивов с данными видеороликов YouTube

3. но когда приложение запускается в Android Studio, видео загружается успешно, а при установке apk приложение вылетает с указанной выше ошибкой

4. распечатайте то, что он возвращает в журнале.

5. он возвращает список видео, но при установке apk выдает ошибку нулевой точки