2016-03-31 8 views
0

verwenden Ich habe das Beispiel der Anwendung Smart Lock for passwords von Google heruntergeladen. Gibt es eine andere Lösung als die Verwendung der Bibliothek < = 23.0.1?Fehler tritt auf, wenn Sie die Bibliothek com.android.support:design:23.1.1+ in der Smart Lock-Beispielanwendung

Fehler in der Bibliothek?

Fehler tritt auf, wenn Sie die Bibliothek com.android.support:design:23.1.1+ verwenden:

03-31 09:53:18.828 16779-16779/com.google.codelab.smartlock E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.google.codelab.smartlock, PID: 16779 
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) 

FATAL EXCEPTION

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' 
} 
+0

Aufruf 'com.android.support: Design: 23.1.1+:' ist nicht guter Ansatz, sollten Sie vermeiden '+' –

+0

ich meine "Version der Bibliothek oben 23.0.1 verwendet wird." Danke. –

Antwort

0

In diesem Beispiel von Google änderte ich das folgende Stück Code in MainActivity, java:

private void setFragment(Intent intent) { 
    ... 
    if (currentTag == null || !currentTag.equals(tag)) { 
     getSupportFragmentManager().beginTransaction() 
       .replace(R.id.fragment_container, fragment, tag) 
       .commit(); 
    } 
} 

An:

private void setFragment(Intent intent) { 
    ... 
    if (currentTag == null || !currentTag.equals(tag)) { 
     getSupportFragmentManager().beginTransaction() 
       .replace(R.id.fragment_container, fragment, tag) 
       .commitAllowingStateLoss(); 
    } 
} 
1

Android compileSdkVersion ist die Version des Compilers in Erstellen der Anwendung .Das Android Support-Bibliothekspaket besteht aus einer Reihe von Codebibliotheken, die rückwärtskompatible Versionen von Android-Framework-APIs sowie Funktionen, die nur eine sind, bereitstellen vailable durch die Bibliothek APIs.

Für 23 compileSdkVersion können Sie Blasebalg verwenden

Aufruf + ist nicht gut Ansatz

compile 'com.android.support:design:23.0.0' 
compile 'com.android.support:design:23.0.1' 
compile 'com.android.support:design:23.1.0' 
compile 'com.android.support:design:23.1.1' 
compile 'com.android.support:design:23.2.0' 
compile 'com.android.support:design:23.2.1' 
+0

Sorry, aber ich bin ein wenig verwirrt) Wenn ich Version 23.0.1 kompiliere (compile 'com.android.support:design:23.0.1' in build.gradle) - keine Fehler. Wenn ich kompiliere 23.1.1 oder 23.2.1 (compile 'com.android.support:design:23.1.1' in build.gradle oder 23.2.1) - eine Ausnahme in App .. Ich rufe nicht "+" –

+0

@SergeyZhadan zeigen Sie Ihre 'build.gradle' –

+0

wenn' buildToolsVersion 23.0.1' dann 'kompilieren 'com.android.support:design:23.1.1' // 23.2.1' nie –