当我通过调试模式在模拟器或常规Android手机上运行我的应用程序时,一切正常。但是,通过签名应用程序安装它会导致它(当我相信)访问或者试图访问内部私有存储中未保存的文件时崩溃。
我有
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
在我的清单文件中以防万一。
我的应用程序在res文件夹中有一些原始测试数据,这些数据被复制到内部存储,通常由用户通过常规使用创建。一切都在调试模式下工作但不正常。 (通过使用应用程序保存工作,所以我猜问题是访问原始资源或将它们复制到内部存储)
可能是什么原因?
这是raw的原始代码 - &gt;内部转移
File file = getApplicationContext ().getFileStreamPath(userTemp);
try {
InputStream inputStream = getResources().openRawResource(
getResources().getIdentifier(user, "raw", getPackageName())
);
FileOutputStream fileOutputStream = new FileOutputStream (file);
byte buf[]=new byte[1024];
int len;
while((len=inputStream.read(buf))>0) {
fileOutputStream.write(buf,0,len);
}
fileOutputStream.close();
inputStream.close();
} catch (IOException e1) {}
user和userTemp只是简单的字符串文件名
编辑:只是为了确认,res文件存在于apk文件中
EDIT2:文件从原始资源复制到内部应用程序存储但由于某种原因无法读取,但正如我之前所说,调试运行良好