2016-04-25 2 views
0

Eine seltsame Sache, die ich gefunden:Warum Apache-Code (die Bibliothek 6.0 entfernt) kann auch auf Android M-Handys ohne Maßnahmen laufen?

Ich habe ein Projekt, um die Apache-Bibliothek verwendet (wie org.apache.http.client.methods ..., die in Android M entfernt wird) .Ich es in SDK 5.0 zu kompilieren und es läuft erfolgreich auf meinem nexus 5 (lauf in Android M).

Ich bestätige, dass es keinen Code wie "useLibrary 'org.apache.http.legacy'" in meinem Projekt gibt.

ich decompile meine app, können nicht die Apache-Codes in dex-Datei ...

Meine IDE: Android Studio 1.5.1 Gradle Plugin Version: 1.5.0 Gradle Version: 2.12

Es ist so seltsam: Das Projekt kann nicht in SDK 6.0, sondern kann auf dem Handy von Android M ohne "'useLibrary' org.apache.http.legacy '" laufen.

Meine erste Frage in stackoverflow und schwach in Englisch, danke für Ihre Lesung!

+0

Ist das eine Programmierfrage? –

+0

danke für deine Antwort, ich denke, ist keine Programmierfrage, nur so seltsam.Und ich weiß nicht, ist die "useLibrary 'orh.apache.http.legacy'" notwendig – user6249728

Antwort

0

Apache-Bibliothek wurde in API-Ebene 23 entfernt, also wenn Ihre compileSdkVersion ist 23 dann wird es nicht finden, aber wenn Sie compileSdkVersion ist 22 oder darunter dann wird es finden .. egal, wenn Sie Ihre laufen App auf Android Marshmallow oder Lebkuchen!

+0

danke you.i denke, das Telefon mit Android Marshmallow habe immer noch Apache-Bibliothek. – user6249728

+0

Bibliotheken sind zur Laufzeit enthalten .. Wenn Sie eine Support-Bibliothek hinzufügen, wird sie zur Laufzeit hinzugefügt, wenn Sie Ihre App erstellen. Das gleiche gilt für die Apache oder jede andere Bibliothek. –