Android Безопасность Jetpack - пример кода не будет компилироваться «не найден подходящий конструктор для FileReader (EncryptedFile)» - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над тестированием бета-версии Google 10101 * Jetpack для обеспечения безопасности.

Пример кода здесь достаточно прост, но он не скомпилируется:

foo.java:274: error: no suitable constructor found for FileReader(EncryptedFile)
             new BufferedReader(new FileReader(encryptedFile))) {

Я включил зависимость в свой gradle:

dependencies {
    implementation "androidx.security:security-crypto:1.0.0-rc01"
}

Поиск документации FileReader здесь Я не вижу, как заставить этот пример кода работать.

Для полноты вот моя функция:

259   void jetpackTest()
260   {
261     KeyGenParameterSpec keyGenParameterSpec = MasterKeys.AES256_GCM_SPEC;
262     String masterKeyAlias = MasterKeys.getOrCreate(keyGenParameterSpec);
263     
264     String fileToRead = "my_sensitive_data.txt";
265     EncryptedFile encryptedFile = new EncryptedFile.Builder(
266             new File("private", fileToRead),
267             this,
268             masterKeyAlias,
269             EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
270     ).build();
271 
272     StringBuffer stringBuffer = new StringBuffer();
273     try (BufferedReader reader =
274                  new BufferedReader(new FileReader(encryptedFile))) {
275 
276         String line = reader.readLine();
277         while (line != null) {
278             stringBuffer.append(line).append('\n');
279             line = reader.readLine();
280         }
281     } catch (IOException e) {
282         // Error occurred opening raw file for reading.
283     } finally {
284         String contents = stringBuffer.toString();
285     }
286   }

1 Ответ

1 голос
/ 29 апреля 2020

В версии Kotlin также есть какая-то ошибка, я думаю, что произошла ошибка или опечатка.

Основываясь на коде для записи файлов в примере кода, вы можете попробовать:

import java.io.InputStreamReader;


BufferedReader reader = new BufferedReader(new InputStreamReader(encryptedFile.openFileInput()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...