2016-06-18 2 views
0

Also, ich versuche, mit Android N arbeiten. Ich bin ein ziemlich neuer Android-Entwickler, mein Ziel ist es, die App kompatibel mit N-Funktionen zu machen wie Multi-Fenster, während es noch auf früheren Versionen funktioniert.Android: Versuchen, mit neuen N-Funktionen arbeiten, bekommen seltsame Nachrichten in Großbuchstaben

Hier ist, wie ich meine build.gradle starten:

compileSdkVersion 24 
    buildToolsVersion "24.0.0" 

    defaultConfig { 
     applicationId "io.craigmiller160.contacts5" 
     minSdkVersion 21 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

Also, ich meine compileSdkVersion, targetSdkVersion und buildToolsVersion bis 24.

Wenn ich das tue, passieren zwei Dinge:

1) Der Abschnitt buildTypes im Code-Snippet, das ich gepostet habe, wird von AndroidStudio hervorgehoben. Es gibt eine Fehlermeldung, die besagt, dass "buildTypes nicht angewendet werden kann" (groovy.lang.Closure) "Ich benutze in dieser App gar nichts Grooves, übrigens. Diese Meldung hat beginnt auch nicht angezeigt, bis ich meine sdk Version 24 geändert

2) ich eine andere Android Studio Fehlermeldung mit meinen Support-Bibliotheken erhalten:

compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:support-v13:23.4.0' 
    compile 'com.android.support:cardview-v7:23.4.0' 
    compile 'com.android.support:support-v4:23.4.0' 

kann ich schon sagen, dass sie alle zielte für sdk 23, und nicht 24. Ich möchte, dass die Fehlerhervorhebung weggeht. Die Sache ist, ich kann nichts für die spezifische Versionsnummer für SDK 24 finden. Könnte ich einfach 24.0.0 verwenden? Oder gibt es einen Ort, an dem ich genau hinschauen kann?

3) Dies ist eine letzte, nicht verwandte Sache, aber ich bin ein professioneller Java-Entwickler, und ich kann nie Java 8-Funktionen bei der Arbeit wegen der Notwendigkeit für Rückwärtskompatibilität mit Kunden, die unsere App auf alten JVMs laufen . Kann ich die Java 8-Funktionen mit der Jack-Toolchain sicher verwenden, während meine App noch auf Android-Versionen vor N funktioniert?

Wie jeder von meiner Konfig sehen kann, wird meine App gezielt auf Lollipop und auf (aus bestimmten Gründen, trotz des Marktanteils) ausgerichtet. Aber ich möchte die Pre-N-Kompatibilität dafür nicht brechen.

Vielen Dank.

Edit: Ok, so komisch, ich habe mein Projekt zurück zu einem früheren Commit, bevor ich diese Änderungen vorgenommen habe, während ich auf eine Antwort warten würde. Aber weil ich jetzt die neuen Support-Bibliotheken heruntergeladen habe, als ich SDK 24 heruntergeladen habe, habe ich eine andere Warnung erhalten, die mir mitteilte, dass Version 24.0.0 verfügbar war. Dies erschien nur, als mein ZielSDK 23 war. In dem Moment, in dem ich es auf 24 stoße, erhalte ich nur einen Fehler, ohne Hinweise darauf, in welche Version ich wechseln soll. Seltsam.

Also ignorieren Frage 2, nur 1 und 3 bitte.

Antwort

1

Es gibt eine Fehlermeldung, die besagt, „buildTypes kann nicht angewendet werden, um‚(groovy.lang.Closure)‘“

Versuchen Sie, eine leere Zeile vor Ihrer buildTypes Zeile hinzufügen. Wenn das nicht hilft, ziehen Sie in Betracht, Ihre Frage zu bearbeiten und die gesamte build.gradle-Datei und nicht die Teilmenge zu veröffentlichen.

Ich verwende

in dieser App gar nicht groovy ist

Gradle basierend auf Groovy.

Könnte ich einfach 24.0.0 verwenden?

Ja.

Oder gibt es einen Ort, an dem ich genauer hinschauen kann.

Blick in $ANDROID_HOME/extras/android/m2repository/com/android/support/appcompat-v7/, wo $ANDROID_HOME ist überall dort, wo Ihr Android-SDK installiert ist. Im Allgemeinen werden alle com.android.support Bibliotheken im Einklang aktualisiert, so dass Sie nachschlagen sollten (z. B. appcompat-v7), sollten Sie eine gültige Versionsnummer für die anderen verwenden.

Sie können auch versuchen, Ihre Abhängigkeiten über den Dialog Projektstruktur in Android Studio einzurichten. Persönlich arbeite ich mit der Datei build.gradle direkt.

Kann ich die Java 8-Funktionen mit der Jack-Toolchain sicher verwenden, während meine App immer noch auf Pre-N-Versionen von Android funktioniert?

Sie können nicht die neuen Klassen verwenden (zum Beispiel java.util.stream), wie sie auf API-Ebene neu sind 24. Andere Merkmale sollen 7 IIRC geht zurück auf API-Ebene arbeiten. Davon abgesehen habe ich sie noch nicht ausprobiert.