有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android:打开跟踪文件时出错

我正在尝试编写一个Android应用程序,它使用一个列表来保存一个汽车列表。在onCreate()中,我启动了一个适配器,这样我就可以将汽车显示为带有图标的可滚动列表。当我启动时,我会运行一个循环来查找手机上保存了二维码的所有汽车,这样我就不必再创建它们了。在这个循环中有一个代码,它会记录每辆车,并将其名称与二维码的名称进行比较。如果有相同的代码,它会将代码提供给汽车,并激活一个标志,表明该汽车有代码

private void fillCodes(List<Car> listCars){


    File dir = getFilesDir();
    if (dir.isDirectory()) {

        String[] children = dir.list();
        String[] arr = new String[4];
        for (int i = 0; i < children.length; i++) {

                arr = children[i].split("#");
                File f=new File(dir, children[i]);
                try {
                    Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
                    codes.add(b);
                    Iterator<Car> it = listCars.iterator();
                    while(it.hasNext()){

                         Car car = it.next();
                     if(car.getName().equals(arr[1])){
                          car.setCode(Integer.parseInt(arr[3]), b);
                          car.setCode(true);
                          break;
                      }} 

                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    Log.i("error", "Decode error");
                }
            }



    } 

这是我用来生成和保存代码的方法:

private void saveToInternalSorage(Bitmap bitmapImage,String name, String car, int carID, int dayId){

    ContextWrapper cw = new ContextWrapper(getApplicationContext());
    File directory = cw.getFilesDir();
    Calendar date = Calendar.getInstance();
    SimpleDateFormat df = new SimpleDateFormat("yyMMdd");
    String dateTicket = df.format(date.getTime());
    File mypath=new File(directory,day.concat("#").concat(car).concat("#").concat(Integer.toString(carID)).concat("#").concat(Integer.toString(dayId)).concat("#.jpg"));
    FileOutputStream fos = null;
try {           

    fos = new FileOutputStream(mypath);
    bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
    fos.close();
} catch (Exception e) {
    e.printStackTrace();
}

日志。i(“directory”,directory.getAbsolutePath()); } 代码运行了一段时间,但在列表启动后,我点击了一个俱乐部,我得到了以下错误:

    error opening trace file: No such  file or directory (2)

我不使用SD卡来保存代码。代码保存在内部。我相信这个错误是由if内部的某些东西造成的。我通过注释代码发现了这一点,直到我找到了错误的原因

你们知道为什么会这样吗?谢谢!


共 (0) 个答案