2014-06-18 9 views
18

Ho un problema con "try-with-risorse non sono supportate a questo livello di lingua" in Android nel seguente codice postato, ho provato a impostare la lingua per 7 ma alambicchi continua a darmi lo stesso esempio più esso continua a darmi la possibilità di cambiare il linguaggio 7.try-with-resources non sono supportati a questo livello di lingua - Android

public String ReadFile(String fileName) { 

    try (BufferedReader br = new BufferedReader(new FileReader(fileName+".txt"))) { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) { 
      sb.append(line); 
      sb.append(System.lineSeparator()); 
      line = br.readLine(); 
     } 

     String everything = sb.toString(); 
     return everything; 
    } catch (FileNotFoundException ex) { 
     Logger.getLogger(SaveNLoadRank.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (IOException ex) { 
     Logger.getLogger(SaveNLoadRank.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    return "1"; 
} 
+5

leggere questo post: http://stackoverflow.com/a/22303654/ 2649012, dove viene spiegato che 'Try-with-resources richiede minSdkVersion 19' –

+0

Possibile duplicato di [Java 7 language features with Android] (http://stackoverflow.com/questions/7153989/java-7-language-features-with -android) – rds

risposta

31

risorse try-with- è supportato solo se il minSdkVersion è impostato su 19 o superiore.

Dal momento che dubito che la vostra applicazione supporti una versione API minima di 19 o superiore (nel giugno 2014), è probabile che questo sia il vostro problema.

Il supporto per le funzionalità del linguaggio Java 7 è stato aggiunto in SDK Tools Revisione 22.6 rilasciata a marzo 2014 (see here). Tuttavia, try-with-resources non è una funzionalità che è possibile introdurre per versioni precedenti di Android, quindi le applicazioni che utilizzano tale funzione devono essere eseguite su 19+, quindi il requisito minSdkVersion.

UPDATE Ora è possibile utilizzare try-with-resources con qualsiasi API.

In aggiunta alle caratteristiche del linguaggio Java 8 e le API, Android Studio 3.0 e versioni successive estende il supporto per try-con-le risorse a tutti i livelli API di Android.

https://developer.android.com/studio/write/java8-support.html

+0

@ user3272243- Sfortunatamente è necessario avere un minimo di 10. Altrimenti la tua applicazione sarà disponibile su dispositivi che non lo fanno rt try-with-resources. –

+0

Sono stato in grado di risolverlo facendo porzioni più piccole di tentativi di cattura, ma grazie per l'aiuto :) –

+0

"è probabile che il tuo problema" sia una dichiarazione errata. –

Problemi correlati