googlecodelabs / android-smart-lock

Seamless Sign In with Smart Lock
https://codelabs.developers.google.com/codelabs/android-smart-lock/
Apache License 2.0
16 stars 15 forks source link

error occurs when you use the library com.android.support:design:23.1.1+ #1

Closed SeregaJ closed 8 years ago

SeregaJ commented 8 years ago

Hi! Error occurs when you use the library com.android.support:design:23.1.1+

error

03-31 09:24:18.304 16709-16709/com.google.codelab.smartlock E/AndroidRuntime: FATAL EXCEPTION: main Process: com.google.codelab.smartlock, PID: 16709 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:634) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:613) at com.google.codelab.smartlock.MainActivity.setFragment(MainActivity.java:119) at com.google.codelab.smartlock.MainActivity.access$000(MainActivity.java:37) at com.google.codelab.smartlock.MainActivity$1.run(MainActivity.java:79) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5253) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:695)

My build.gradle: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:design:23.2.1' compile 'com.google.android.gms:play-services-auth:8.4.0' testCompile 'junit:junit:4.12'

SeregaJ commented 8 years ago

I am change commit() to commitAllowingStateLoss() in MainActivity,java; private void setFragment(Intent intent) { ... if (currentTag == null || !currentTag.equals(tag)) { getSupportFragmentManager().beginTransaction() .replace(R.id.fragment_container, fragment, tag) .commit(); } } to: private void setFragment(Intent intent) { ... if (currentTag == null || !currentTag.equals(tag)) { getSupportFragmentManager().beginTransaction() .replace(R.id.fragment_container, fragment, tag) .commitAllowingStateLoss(); } }