Вылетает приложение при чтении файла с "Windows1252" символо

Ответить
xtreme2010
Сообщения: 2
Зарегистрирован: 06 мар 2014, 15:55

Вылетает приложение при чтении файла с "Windows1252" символо

Сообщение xtreme2010 » 09 мар 2014, 20:25

Все папки кроме этой читает, Вылетало пока не удалил файл с "Windows1252" символом в имени.

Код: Выделить всё

        try
        {
            ArrayList<String> fileStr = new ArrayList<String>();
            File files = new File("/mnt/sdcard/Download/Club/");
            if(files.length() > 0)
            {
                for(File f : files.listFiles())
                {
                    fileStr.add(f.getAbsolutePath().toString());
                }

                ((TextView)findViewById(R.id.textView1)).setText("Файлов: " + fileStr.size());

                ListView lv = (ListView)findViewById(R.id.listView1);
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item,fileStr);
                lv.setAdapter(adapter);
            }
        }
        catch (Exception ex)  { }
Лог (Приложение просто закрылось без AlertDialog)

Код: Выделить всё

03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 687488 bytes, got 49152
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 638336 bytes, got 49152
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 589184 bytes, got 49152
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 540032 bytes, got 16384
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 523648 bytes, got 366140
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 157508 bytes, got 49152
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 108356 bytes, got 49152
03-09 17:22:53.313      352-353/? E/SocketStream﹕ readFully was waiting for 59204 bytes, got 49152
Если эти файлы в папке то программа вылетает сразу даже не успев открыться
Изображение

Как обезопасить программу от подобных ошибок?
Последний раз редактировалось xtreme2010 10 мар 2014, 12:34, всего редактировалось 2 раза.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Вылетает приложение при чтении файла с «нестандартным» с

Сообщение Mikhail_dev » 09 мар 2014, 23:23

Конкретней, что за нестандартное имя? Что пишет лог? Судя по тому что представлено, стоит фильтр по ошибкам уровня Error. Может стоит понизить до нижнего уровня?

xtreme2010
Сообщения: 2
Зарегистрирован: 06 мар 2014, 15:55

Re: Вылетает приложение при чтении файла с «нестандартным» с

Сообщение xtreme2010 » 09 мар 2014, 23:33

m090050 писал(а):Конкретней, что за нестандартное имя? Что пишет лог? Судя по тому что представлено, стоит фильтр по ошибкам уровня Error. Может стоит понизить до нижнего уровня?

Код: Выделить всё

03-09 20:33:16.959      281-372/system_process E/Genymotion﹕ Could not open '/sys/class/power_supply/genymotion_fake_path/present'
03-09 20:33:17.695      114-141/? W/audio_hw_primary﹕ out_write() limiting sleep time 46802 to 39909
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 687488 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 638336 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 589184 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 540032 bytes, got 16384
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 523648 bytes, got 218680
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 304968 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 255816 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 206664 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 157512 bytes, got 49152
03-09 20:33:17.711      346-347/? E/SocketStream﹕ readFully was waiting for 108360 bytes, got 49152
03-09 20:33:17.739    1264-1264/core.player.app E/Trace﹕ error opening trace file: No such file or directory (2)
03-09 20:33:17.747    1264-1264/core.player.app W/dalvikvm﹕ JNI WARNING: input is not valid Modified UTF-8: illegal start byte 0xa7
03-09 20:33:17.747    1264-1264/core.player.app W/dalvikvm﹕ string: 'test�.txt'
03-09 20:33:17.747    1264-1264/core.player.app W/dalvikvm﹕ in Ljava/io/File;.listImpl:(Ljava/lang/String;)[Ljava/lang/String; (NewStringUTF)
03-09 20:33:17.795    1264-1264/core.player.app A/libc﹕ Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 1264 (core.player.app)
03-09 20:33:18.007      281-299/system_process W/ActivityManager﹕ Force removing ActivityRecord{538c6a70 core.player.app/.MainActivity}: app died, no saved state
03-09 20:33:18.015      281-376/system_process W/WindowManager﹕ Rebuild removed 3 windows but added 2
03-09 20:33:18.015      281-376/system_process W/WindowManager﹕ This window was lost: Window{538c887c Starting core.player.app paused=false}
03-09 20:33:18.015      281-376/system_process W/WindowManager﹕ mSession=Session{537cae1c uid 1000} mClient=android.view.ViewRootImpl$W@538bf394
    mAttrs=WM.LayoutParams{(0,0)(fillxfill) sim=#20 ty=3 fl=#1830118 pfl=0x9 wanim=0x103028f}
    Requested w=800 h=1184 mLayoutSeq=96
    mBaseLayer=21000 mSubLayer=0 mAnimLayer=21015+0=21015 mLastLayer=21015
    mToken=AppWindowToken{5394fb2c token=Token{5390b38c ActivityRecord{538c6a70 core.player.app/.MainActivity}}}
    mRootToken=AppWindowToken{5394fb2c token=Token{5390b38c ActivityRecord{538c6a70 core.player.app/.MainActivity}}}
    mAppToken=AppWindowToken{5394fb2c token=Token{5390b38c ActivityRecord{538c6a70 core.player.app/.MainActivity}}}
    mViewVisibility=0x0 mHaveFrame=true mObscured=false
    mSeq=0 mSystemUiVisibility=0x0
    mGivenContentInsets=[0,0][0,0] mGivenVisibleInsets=[0,0][0,0]
    mConfiguration={1.0 0mcc0mnc en_US sw400dp w400dp h567dp nrml port finger qwerty/v/v dpad/v s.4}
    mHasSurface=true mShownFrame=[17.285706,34.427734][817.2857,1218.4277]
    mFrame=[0,0][800,1184] last=[0,0][800,1184]
    mSystemDecorRect=[0,50][800,1184] last=[0,50][800,1184]
    Frames: containing=[0,0][800,1184] parent=[0,0][800,1184] display=[0,0][800,1184]
    content=[0,50][800,1184] visible=[0,50][800,1184]
    Cur insets: content=[0,50][0,0] visible=[0,50][0,0]
    Lst insets: content=[0,50][0,0] visible=[0,50][0,0]
    mSurface=Surface(name=Starting core.player.app, identity=16)
    mDrawState=HAS_DRAWN mLastHidden=true
    Surface: shown=false layer=21015 alpha=0.964063 rect=(17.285706,34.427734) 800.0 x 1184.0
    mShownAlpha=0.964063 mAlpha=1.0 mLastAlpha=0.964063
    mGlobalScale=1.0 mDsDx=0.97071135 mDtDx=0.0 mDsDy=0.0 mDtDy=0.96964777
    mExiting=false mRemoveOnExit=false mDestroying=true mRemoved=false
03-09 20:33:18.015      281-376/system_process W/WindowManager﹕ Current app token list:
03-09 20:33:18.015      281-376/system_process W/WindowManager﹕ Final window list:
03-09 20:33:18.023      533-533/com.android.launcher W/EGL_emulation﹕ eglSurfaceAttrib not implemented
03-09 20:33:18.027      281-623/system_process W/InputMethodManagerService﹕ Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@538c35d0 attribute=null
Я так понял, что это из-за того что кодировка имени файла не UTF-8? но как отследить это и например пропустить этот файл или переименовать в UTF-8?

Ответить