2017-05-22 51 views
-3

我已经在我的Android应用程序创建新的线程读取.p12文件是这样的:的inputStream给java.io.FileNotFoundException

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

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

java.io.FileNotFoundException

的simular代码简单的Java应用程序的工作没有任何问题。是什么原因?

回答

3

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

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

如果要打包在你的应用程序文件:

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

  • 把文件中assets/

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

+0

有什么方法可以从资产的输入流创建文件?我需要这个文件在GoogleCredentials中使用它。 – DzouSi

+0

@DzouSi:获取'InputStream'。在你控制的某个文件(例如'getFilesDir()')中创建一个'FileOutputStream'。使用标准Java I/O复制字节。 – CommonsWare

相关问题