Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Impossible d'utiliser Apache ?

    2 juin 2013 à 20:48:58

    Bonjour, ce la fait plusieurs jours que je me bats avec la bibliothèque Apache pour créer un lien FTP avec mon serveur, Android me rend cela impossible...

    J'ai des messages d'erreur que j'ai énormément de mal à comprendre donc je vais vous en faire part :

    06-02 18:34:54.608: E/AndroidRuntime(9398): FATAL EXCEPTION: main
    06-02 18:34:54.608: E/AndroidRuntime(9398): android.os.NetworkOnMainThreadException
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:432)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:258)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.net.InetAddress.getByName(InetAddress.java:336)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.net.InetSocketAddress.<init>(InetSocketAddress.java:105)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.net.InetSocketAddress.<init>(InetSocketAddress.java:90)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at org.apache.commons.net.SocketClient.connect(SocketClient.java:176)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at com.example.okok.MainActivity.downloadFile(MainActivity.java:66)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at com.example.okok.MainActivity$1.onClick(MainActivity.java:37)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.view.View.performClick(View.java:3528)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.view.View$PerformClick.run(View.java:14235)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.os.Handler.handleCallback(Handler.java:605)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.os.Looper.loop(Looper.java:137)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.lang.reflect.Method.invokeNative(Native Method)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at java.lang.reflect.Method.invoke(Method.java:511)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
    06-02 18:34:54.608: E/AndroidRuntime(9398): 	at dalvik.system.NativeStart.main(Native Method)
    06-02 18:43:40.178: I/Adreno200-EGLSUB(9556): <ConfigWindowMatch:2081>: Format RGBA_8888.
    06-02 18:43:40.178: D/memalloc(9556): /dev/pmem: Mapped buffer base:0x51875000 size:1843200 offset:1228800 fd:68
    06-02 18:43:40.678: D/memalloc(9556): /dev/pmem: Mapped buffer base:0x51d37000 size:5939200 offset:5324800 fd:71
    06-02 18:43:40.768: D/memalloc(9556): /dev/pmem: Mapped buffer base:0x522e1000 size:9666560 offset:9052160 fd:74
    06-02 18:43:42.438: W/dalvikvm(9556): threadid=1: thread exiting with uncaught exception (group=0x40af29f0)
    06-02 18:43:42.458: E/AndroidRuntime(9556): FATAL EXCEPTION: main
    06-02 18:43:42.458: E/AndroidRuntime(9556): android.os.NetworkOnMainThreadException
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:432)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:258)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.net.InetAddress.getByName(InetAddress.java:336)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.net.InetSocketAddress.<init>(InetSocketAddress.java:105)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.net.InetSocketAddress.<init>(InetSocketAddress.java:90)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at org.apache.commons.net.SocketClient.connect(SocketClient.java:176)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at com.example.okok.MainActivity.downloadFile(MainActivity.java:66)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at com.example.okok.MainActivity$1.onClick(MainActivity.java:37)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.view.View.performClick(View.java:3528)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.view.View$PerformClick.run(View.java:14235)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.os.Handler.handleCallback(Handler.java:605)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.os.Looper.loop(Looper.java:137)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at android.app.ActivityThread.main(ActivityThread.java:4424)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.lang.reflect.Method.invokeNative(Native Method)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at java.lang.reflect.Method.invoke(Method.java:511)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
    06-02 18:43:42.458: E/AndroidRuntime(9556): 	at dalvik.system.NativeStart.main(Native Method)
    

    Et voici mon code MainActivity.java :

    package com.example.okok;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.net.SocketException;
    
    import android.os.Bundle;
    import org.apache.commons.net.ftp.*;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    	
    	FTPClient mFTPClient = new FTPClient();
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		final TextView view = (TextView) findViewById(R.id.welcomeText);
    		OnClickListener enregistrerBouton = new OnClickListener() 
    		{
    
    			@Override
    			public void onClick(View actualView) {
    				
    				view.setText("Un autre texte");
    				Intent intent = new Intent(MainActivity.this, ProfileActivity.class);
    				startActivity(intent);
    				downloadFile("e", "e");
    				
    			}
    			
    		};
    		Button bouton = (Button) findViewById(R.id.loginButton);
    		bouton.setOnClickListener(enregistrerBouton);
    		
    		
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    	
    	public void downloadFile(String fileToDownload, String nameOfFile) {
    		
    		
    		/////////////////////////////////////////////////////////////////////////////////////////////////////
    		//                                                                                                 //
    		//              Connexion au serveur                                                               //
    		//                                                                                                 //
    		/////////////////////////////////////////////////////////////////////////////////////////////////////
    	      mFTPClient = new FTPClient();  
    	      // connecting to the host  
    	      try {
    			mFTPClient.connect("ftpperso.free.fr", 21);
    		} catch (SocketException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}  
    	       try {
    			boolean status = mFTPClient.login("PSEUDO", "MOTDEPASSE");
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}  
    	       // now check the reply code, if positive mean connection success  
    	      if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {  
    	           /* Set File Transfer Mode  
    	            *  
    	            * To avoid corruption issue you must specified a correct  
    	            * transfer mode, such as ASCII_FILE_TYPE, BINARY_FILE_TYPE,  
    	            * EBCDIC_FILE_TYPE .etc. Here, I use BINARY_FILE_TYPE  
    	            * for transferring text, image, and compressed files.  
    	            */  
    	           try {
    				mFTPClient.setFileType(FTP.ASCII_FILE_TYPE);
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}  
    	           mFTPClient.enterLocalPassiveMode();  
    		
    		
    	      
    	}
    	
    
    }
    	
    }
    

    Si vous pouviez m'aider, ce serait génial !

    • Partager sur Facebook
    • Partager sur Twitter
    Développeur indépendant à la poursuite de connaissances.
      5 juin 2013 à 19:34:55

      Je me permets d'upper le sujet, car ça devient urgent. 

      Aidez moi s'il vous plaît !

      • Partager sur Facebook
      • Partager sur Twitter
      Développeur indépendant à la poursuite de connaissances.

      [Android] Impossible d'utiliser Apache ?

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown