Приложение вылетает, когда я устанавливаю ImageSwitcher внутри метода onCreate фрагмента - PullRequest
0 голосов
/ 21 сентября 2018

Вот моя цитата.Всякий раз, когда я удаляю эту строку: mImageSwitcher_01.setImageResource (switchImages [0]); приложение прекрасно работает.Целью является восстановление ImageSwitcher после запуска приложения.Статус сохранения сохраняется с помощью общего предпочтения.

public View onCreateView (@NonNull LayoutInflater inflater, контейнер @Nullable ViewGroup, @Nullable Bundle saveInstanceState) {

    View view = inflater.inflate(R.layout.fragment_remote_control, container, false);

    //initialize database
    savedInstanceDB = FirebaseFirestore.getInstance();
    //Initialize ON_OFF Buttons (ON Button 1 to 4 & OFF Button 1 to 4)
    mButtonON_01 = view.findViewById(R.id.on_btn_01);
    mButtonOFF_01 = view.findViewById(R.id.off_btn_01);
    mButtonON_02 = view.findViewById(R.id.on_btn_02);
    mButtonOFF_02 = view.findViewById(R.id.off_btn_02);
    mButtonON_03 = view.findViewById(R.id.on_btn_03);
    mButtonOFF_03 = view.findViewById(R.id.off_btn_03);
    mButtonON_04 = view.findViewById(R.id.on_btn_04);
    mButtonOFF_04 = view.findViewById(R.id.off_btn_04);
    //Initialize ImageSwitchers 1 to 4
    mImageSwitcher_01 = view.findViewById(R.id.image_switcher_01);
    mImageSwitcher_02 = view.findViewById(R.id.image_switcher_02);
    mImageSwitcher_03 = view.findViewById(R.id.image_switcher_03);
    mImageSwitcher_04 = view.findViewById(R.id.image_switcher_04);



    //Restore saved Imageswitcher instance for ImageSwitcher 1 to 4
   if (savedInstanceState != null) {
       int savedSwitchState_01 = savedInstanceState.getInt(KEY_IMAGE_SWITCHER_01);
       mImageSwitcher_01.setImageResource(savedSwitchState_01);

       int savedSwitchState_02 = savedInstanceState.getInt(KEY_IMAGE_SWITCHER_02);
       mImageSwitcher_02.setImageResource(savedSwitchState_02);

       int savedSwitchState_03 = savedInstanceState.getInt(KEY_IMAGE_SWITCHER_03);
       mImageSwitcher_03.setImageResource(savedSwitchState_03);

       int savedSwitchState_04 = savedInstanceState.getInt(KEY_IMAGE_SWITCHER_04);
       mImageSwitcher_04.setImageResource(savedSwitchState_04);
   } else if (loadSwitchStatus(SWITCH_ID_01, DOCUMENT_ID_01, IMAGE_INDEX_01) == 0 /*|| loadSwitchStatus(SWITCH_ID_01, DOCUMENT_ID_01, IMAGE_INDEX_01) == 1*/) {
       /*image_id_01 = switchImages[loadSwitchStatus(SWITCH_ID_01, DOCUMENT_ID_01, IMAGE_INDEX_01)];*/

       //Toast.makeText(mContext, Integer.toString(loadSwitchStatus(SWITCH_ID_01, DOCUMENT_ID_01, IMAGE_INDEX_01)), Toast.LENGTH_SHORT).show();

       mImageSwitcher_01.setImageResource(switchImages[0]);
   } else {
       Toast.makeText(mContext, "Switches not Active", Toast.LENGTH_SHORT).show();
   }

    //Display selected image in ImageSwitcher 1 to 4
    mImageSwitcher_01.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            ImageView mImageView = new ImageView(mContext.getApplicationContext());
            mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            return mImageView;
        }
    });

    mImageSwitcher_02.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            ImageView mImageView = new ImageView(mContext.getApplicationContext());
            mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            return mImageView;
        }
    });

    mImageSwitcher_03.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            ImageView mImageView = new ImageView(mContext.getApplicationContext());
            mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            return mImageView;
        }
    });

    mImageSwitcher_04.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            ImageView mImageView = new ImageView(mContext.getApplicationContext());
            mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            return mImageView;
        }
    });

}

Трассировка стека: 09-21 14: 27: 26.995 32097-32097 /?E / dalvikvm: >>>>> Обычный пользователь

za.co.nurontech.mrc [userId: 0 |appId: 10174] 09-21 14: 27: 27.265 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.app.job.JobScheduler', на который ссылается метод com.google.android.gms.internal.zzcll.zzbax 09-21 14: 27: 27.265 32097-32097 / za.co.nurontech.mrc E / dalvikvm: не удалось найти класс 'android.app.job.JobScheduler', на который ссылается метод com.google.android.gms.internal.zzcll.zzs 09-21 14: 27: 27.406 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.support.v4.view.ViewCompat $ OnUnhandledKeyEventListenerWrapper', ссылается на метод android.support.v4.view.ViewCompat.addOnUnhandledKeyEventListener 09-21 14: 27: 27.406 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.view.WindowInsets',ссылка на метод android.support.v4.view.ViewCompat.dispatchApplyWindowInsets 09-21 14: 27: 27.426 32097-32097 / za.co.nurontech.mrc E / dalvikvm: не удалось найти класс 'android.view.WindowInsets', на который имеется ссылкаиз метода android.support.v4.view.ViewCompat.onApplyWindowInsets 09-21 14: 27: 27.426 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.view.View $ OnUnhandledKeyEventListener', на который ссылается метод android.support.v4.view.ViewCompat.removeOnUnhandledKeyEventListener 09-21 14: 27: 27.436 32097-32097 / za.co.nurontech.mrc E / dalvikvm: не удалось найти класс 'android.support.v4.view.ViewCompat $ 1', на который ссылается метод android.support.v4.view.ViewCompat.setOnApplyWindowInsetsListener 09-21 14: 27: 27.456 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.graphics.drawable.RippleDrawable', на который ссылается метод android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering 09-21 14: 27: 28.587 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.widget.ThemedSpinnerAdapter', на который ссылается метод android.support..widget.AppCompatSpinner $ DropDownAdapter.09-21 14: 27: 28.877 32097-32097 / za.co.nurontech.mrc E / ViewSystem: ViewRootImpl # 2 Поверхность недопустима.09-21 14: 27: 28.957 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.support.v4.widget.DrawerLayout $ 1', на который ссылается метод android.support.v4.widget.DrawerLayout.09-21 14: 27: 28.967 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.view.WindowInsets', на который ссылается метод android.support.v4.widget.DrawerLayout.onDraw 09-21 14: 27: 28.967 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.view.WindowInsets', на который ссылается метод android.support.v4.widget.DrawerLayout.onMeasure 09-21 14: 27: 28.967 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'android.view.WindowInsets', на который ссылается метод android.support.v4.widget.DrawerLayout.onMeasure 09-2114: 27: 29.137 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'javax.net.ssl.SNIServerName', на который ссылается метод com.google.android.gms.org.conscrypt.Platform.getSniHostnameFromParams 09-21 14: 27: 29.137 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'javax.net.ssl.SNIHostName', на который ссылается метод com.google.android.gms.org.conscrypt.Platform.setParametersSniHostname09-21 14: 27: 29.137 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс 'javax.net.ssl.SNIHostName', на который ссылается метод com.google.android.gms.org.concerypt.Platform.setParametersSniHostname 09-21 14: 27: 29.147 32097-32097 / za.co.nurontech.mrc E / dalvikvm: Не удалось найти класс «com.google.android.gms.org.conscrypt.Java8ExtendedSSLSession», на который ссылаетсяметод com.google.android.gms.org.conscrypt.Platform.wrapSSLSession 09-21 14: 27: 29.288 32097-32097 / za.co.nurontech.mrc E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: za.co.nurontech.mrc, PID: 32097 java.lang.RuntimeException: Невозможно начать действие ComponentInfo {za.co.nurontech.mrc / za.co.nurontech.mrc.ControlActivity}: исключение java.lang.NullPointerException в android.app.ActivityThread.performLaunchA(ActivityThread.java:2412) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2470) в android.app.ActivityThread.access $ 900 (ActivityThread.java:174) в android.app.ActivityThread $ H.handleMessage (Activi)tyThread.java:1307) в android.os.Handler.dispatchMessage (Handler.java:102) в android.os.Looper.loop (Looper.java:146) в android.app.ActivityThread.main (ActivityThread.java:5593).) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:515) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java): 1283) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099) в dalvik.system.NativeStart.main (собственный метод). Причина: java.lang.NullPointerException в android.widget.ImageSwitcher.setImageResource(ImageSwitcher.java:41) в za.co.nurontech.mrc.RemoteControlFragment.onCreateView (RemoteControlFragment.java:128) в android.support.v4.app.Fragment.performCreateView (Fragment.java:2435) в android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1460) в android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1784) в android.support.v4.app.Fral.mTovempanagerIoState (FragmentManager.java:1852) в android.support.v4.app.BackStackRecord.executeOps (BackStackRecord.java:802) в android.support.v4.app.FragmentManagerImpl.executeOps (FragmentManager.jroid:supp в at).v4.app.2273FragmentController.dispatchActivityCreated (FragmentController.java:201) в android.support.v4.app.FragmentActivity.onStart (FragmentActivity.java:610) в android.support.v7.app.AppCompatActivity.onStart (AppCompatActivity.java:roid).app.Instrumentation.callActivityOnStart (Instrumentation.java:1177) в android.app.Activity.performStart (Activity.java:5468) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2385) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2470)) на android.app.ActivityThread.access $ 900 (ActivityThread.java:174)на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1307) на android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop (Looper.java:146) на android.app.ActivityThread.main (ActivityThread.java:5593) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:515) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1283) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1099) в dalvik.system.NativeStart.main (собственный метод)

...