inputStream 给出 java.io.FileNotFoundException

inputStream gives java.io.FileNotFoundException

我在我的 android 应用程序中创建了新线程来读取 .p12 文件,如下所示:

AssetManager am = getAssets();
InputStream inputStream = am.open("C:\Users\UkrBikeApp-ff55878cb577.p12");

此文件存在于目录中。但是每次我得到

java.io.FileNotFoundException

模拟代码在简单的 java 应用程序中运行没有任何问题。这是什么原因?

首先,C:\Users\UkrBikeApp-ff55878cb577.p12 是 Windows 机器上文件的路径。 Android 不是 Windows.

其次,C:\Users\UkrBikeApp-ff55878cb577.p12是一个文件系统路径。它不是您 APK 中资产的路径,因此 AssetManager 无论如何都不知道如何处理它。

如果您想将此文件打包到您的应用中:

  • 在适当的模块和源集中创建一个 assets/ 目录(例如,app/src/main/assets/

  • 将文件放入assets/

  • AssetManager 上使用 open() 和普通文件名