这可能是一个愚蠢的问题..但我对此感到恼火。
主要问题是......我编写了从外部存储中读取文本文件的代码。
在我的电脑中,我安装了一个名为MEMU的软件,如blustaks。
在菜单软件中,我的程序效果很好......但是当我在我的手机中安装该应用程序时(很酷的便条3英寸),它显示“不幸的是app停止了”。
我安装在另一部手机“Moto E”中,但在那部手机中我也遇到了同样的问题。
在系统软件中,它提供输出..请任何人帮助我......问题出在哪里......(系统软件是三星)
我的代码是////
signal_number=1;samples=3600;shifting=180;
File sdCard = Environment.getExternalStorageDirectory();
String filename ;
File dir = new File(sdCard.getAbsolutePath());
sample_tenSec = FileData.getData(dir, filename, signal_number,samples,shifting);
//////////////////////// java code //////////////////// ///
public class FileData {
public static Number[] getData(File dir , String filename, int signalNumber,int samples,int shifting)
{
File file = null;
Number[] result = new Number[samples];
try //Get the text file
{
file = new File(dir+"/"+filename);
//file=new File("/storage//3483-14D9//ppg.txt");
if(file.exists())
{System.out.println("File Exists");}
else
{System.out.println("File Does not Exist");}
}
catch(Exception e1)
{
System.out.println("File not found.");
}
// Read from File
int start = (signalNumber-1)*(int)(shifting) +1;
int end = (start + (int) (samples)) - 1;
int i=1,k=0;
try
{
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null && i<=end)
{
if(i>=start)
{
try
{ result[k++]= (Double.parseDouble(line.toString())); }
catch (NumberFormatException discardNonIntegers)
{ discardNonIntegers.printStackTrace(); }
}
i++;
}
br.close();
}
catch (Exception e)
{
System.out.println("File not reading problem.");
//System.out.println(e.getMessage());
}
return result;
}
}
答案 0 :(得分:0)
如果没有看到您正在使用的代码,很难确定问题所在。只是阅读你写的段落,我猜你的权限有问题。请记住,您不仅需要在清单中包含静态权限,还需要包含运行时权限。
如果您需要读写,请将以下权限添加到您的清单中:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
此外,您需要实现运行时权限。您可以在此处找到所需的所有信息:
https://developer.android.com/training/permissions/requesting.html