2011-01-10 41 views
6

Ostatnio zauważyłem, że podczas próby uruchomienia aplikacji na emulacji Gingerbread, FTP się zepsuł. Obecnie używam zewnętrznej biblioteki Apache Commons wsparcia FTP, ale z jakiegoś powodu nie działa na każdej innej Android OS z wyjątkiem 2.3 (Gingerbread)Nie można połączyć się z serwerem FTP na Gingerbread

Oto mój kod FTP

FTPClient ftp = new FTPClient(); 
ftp.connect(SERVER); 
ftp.login("anonymous", "anonymous"); 
ftp.setFileType(FTP.BINARY_FILE_TYPE); 
ftp.enterLocalPassiveMode(); 

InputStream is = ftp.retrieveFileStream("file.txt"); 
byte[] data = new byte[1024]; 

fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
int x = 0; 
while((x=is.read(data,0,1024))>=0){ 
    fos.write(data,0,x); 
} 
fos.flush(); 
fos.close(); 
ftp.logout(); 
ftp.disconnect(); 

Jak powiedziałem, to jest testowany i działa w wersjach 1.6, 2.1 i 2.2, ale nie 2.3. Próbowałem cały dzień, aby dowiedzieć się, dlaczego i jak to naprawić, ale nie mogę znaleźć żadnego rozwiązania.

Zastanawiam się więc, czy ktokolwiek ma doświadczenie z FTP i Gingerbread i czy może być tak miło poprowadzić mnie we właściwym kierunku.

Dzięki.

+0

Czy poprzedza uwierzytelnianie? Czy są zgłaszane wyjątki? – Brian

+0

Twój kod działa poprawnie dla mnie z emulatorem poziomu API systemu Android 2.3.1 i plikiem commons-net-2.0.jar. Być może masz starszą wersję? Użyłem strony FTP www.mirrorservice.org i pliku /pub/gnu/r.README – NickT

+0

Co się nie udaje? czy masz stacktrace? nie zbudować lub nie uruchomić? –

Odpowiedz

1

Nie wiem, co jest przyczyną problemu, ale dowiedziałem się, że FTP na Androidzie 2.3 działa, ale nie emuluje.

W momencie, w którym wypróbowałem mój kod na moim telefonie komórkowym, działało tak, jak miało to miejsce we wszystkich poprzednich wersjach Androida.

Dzięki za pomoc!

0

Pierwszą rzeczą, którą chciałbym sprawdzić, to czy masz odpowiednie uprawnienia, jeśli tak jest, sprawdź Logcat pod kątem jakichkolwiek wyjątków. Jeśli masz jakieś, opublikuj je tutaj lub przez pastebin.

Powiązane problemy