web-dev-qa-db-fra.com

Android import Java.nio.file.Files; ne peut pas être résolu

J'essaie la nouvelle API Gmail et les exemples utilisent les classes du package Java.nio.file, e.i. Files et FileSystems.

Ces classes ont été introduites dans Java jdk 1.7 pour mémoire, et puisque j'utilise jdk 1.7.0_65 dans mon application Android, je ne sais pas pourquoi Android Studio ne peut pas trouver ces classes.

Les importations sont:

import Java.nio.file.FileSystems;
import Java.nio.file.Files;

Mon fichier build.gradle indique bien sûr au système d'utiliser la version 1.7 comme ceci

Android {
    compileSdkVersion 19
    buildToolsVersion '20'
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

Je pointe vers le bon répertoire du jdk:

enter image description here

Le jdk est répertorié dans la section Bibliothèques externes:

enter image description here

Et si je parcours les fichiers Java, je peux même trouver Java.nio.file.Files et .FileSystems:

enter image description here

Maintenant, qu'est-ce que le **** se passe!? D'après ma compréhension, je fais tout ici, des suggestions?

44
Jakob

Android n'offre pas toutes les classes que "Java conventionnel" a à offrir. Files est l'une des classes que Android n'offre pas.

Vous pouvez consulter les classes disponibles dans Android ici: http://developer.Android.com/reference/classes.html

Donc, malheureusement, vous devez utiliser d'autres fonctions/classes pour implémenter la même fonctionnalité.

PS: La classe est affichée dans votre capture d'écran car vous parcourez les classes de Java installé sur votre [~ # ~] pc [~ # ~] , pas ceux qui sont disponibles sur le Android téléphone/tablette Android.

Mise à jour

Les classes Files/FileSystem sont devenues disponibles à partir de l'API version 26.

62
fabian
11
stone

Jetez un œil à cela Lien Android prend en charge certaines classes de packages NIO pas des classes complètes. Mais si vous avez besoin d'accélérer votre code, vous pouvez également utiliser Apache-commons api pour la même chose.

1
Simmant