Android Jetpack的安全性 – 示例代码无法编译 "没有为FileReader(EncryptedFile)找到合适的构造函数"

我正在测试谷歌Android 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   }

解决方案:

Kotlin版本也出现了一些错误,我想应该是出现了错误或者错别字。

根据示例代码中写文件的代码,你可以尝试作为。

import java.io.InputStreamReader;


BufferedReader reader = new BufferedReader(new InputStreamReader(encryptedFile.openFileInput()))

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/11284.html

(0)
上一篇 6天前
下一篇 6天前

相关推荐

发表评论

登录后才能评论