2017-05-22 80 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

相關問題