Partage
  • Partager sur Facebook
  • Partager sur Twitter

JCIFS - Problème de Connection pc/tablette

    12 mai 2013 à 18:32:08

    Bonjour à tous,

    J'essaye de faire une application Android qui me permet de copier un fichier texte de mon pc vers ma tablette, mais mon application plante.

    Voici mon manifeste :

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.connection_sqlite"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.connection_sqlite.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
        
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.ADD_SYSTEM_SERVICE" />    
        
    </manifest>

    Ensuite mon application :

    package com.example.connection_sqlite;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.MalformedURLException;
    
    import jcifs.smb.NtlmPasswordAuthentication;
    import jcifs.smb.SmbAuthException;
    import jcifs.smb.SmbException;
    import jcifs.smb.SmbFile;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.content.SharedPreferences;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    
    public class MainActivity extends Activity
    {
    	//Déclarations
    	public NtlmPasswordAuthentication auth;	//
    	public SmbFile originalfile;		//
    	
    	public TextView textViewInfoWifi;
    	public EditText editTexteSource;
    	public EditText editTexteDestination;
    	public EditText editTexteDomaine;
    	public EditText editTexteIP;
    	public EditText editTexteUser;
    	public EditText editTexteMdP;
    	public Button boutonCopier;
    
    
    	@SuppressLint("SdCardPath")
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		//*************  DECLARATION DES CONTROLES  ***************************************************
    		textViewInfoWifi = (TextView)findViewById(R.id.textViewInfoWifi);
    		editTexteSource = (EditText)findViewById(R.id.editTextSource);
    		editTexteDestination = (EditText)findViewById(R.id.editTextDestination);
    		editTexteDomaine = (EditText)findViewById(R.id.editTextAdmin);
    		editTexteIP = (EditText)findViewById(R.id.editTextIP);
    		editTexteUser = (EditText)findViewById(R.id.editTextUser);
    		editTexteMdP = (EditText)findViewById(R.id.editTextMdP);
    		
    		boutonCopier = (Button)findViewById(R.id.buttonCopier);
    		boutonCopier.setOnClickListener(new OnClickListener()
    		{
    			@Override
    			public void onClick(View v)
    			{
    				RecupParametres();
    				copyFile();
    			}
    		});
    	}
    	
    
    	protected void RecupParametres()
    	{
    		auth = new NtlmPasswordAuthentication("WORKSPACE", "Toto", "m0t2pAce");
    		
    		//Chemin du fichier source
    		originalfile = new SmbFile("smb://192.168.1.789/Users/Toto/Texte.txt", auth);
    	}
    
    
    	@SuppressLint("SdCardPath")
    	protected void copyFile()	//Copie d'un fichier texte d'un répertoire à un autre.
    	{
    		InputStream is = originalfile.getInputStream();
    		FileOutputStream out = new FileOutputStream("/mnt/sdcard/destination.txt" );
    				
    		byte buffer[] = new byte[1024];
    		int nb;
    		while ((nb = is.read(buffer)) != -1)
    		{
    		      out.write(buffer, 0, nb);
    		}
    		
    		is.close();
    		out.close();
    	}
    }

    Puis le message d'erreur que me laisse le log :



    Le programme se plante à la ligne 83 avec l'erreur ExceptionInInitializerError.

    Mes paramètres de connection sont bons (je les ai testés avec une autre application sur ma tablette), les chemins d'accès existent bien.

    Je ne comprend donc pas ce qui ne va pas. Si quelqu'un s'y connait en jcifs et connection inter-matériel je veux bien écouter ses conseils.

    Merci d'avance.

    -
    Edité par Frieurieud 13 mai 2013 à 9:11:24

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2013 à 22:38:00

      Je viens de découvrir ceci : 

      lorsque je passe ma souris sur .getInputStream de la ligne 83, un infobulle m'affiche :

      Open Declaration InputStream jcifs.smb.SmbFile.getInputStream() throws IOException
      
      
      Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be found.
      

      :'( C'est quoi ce bor*** !!!

      Voici mon JavaBuild où le javadoc de jcifs est renseigné :

      Donc si ce n'est pas le javadoc de jcifs que veut-il ?????

      -
      Edité par Frieurieud 13 mai 2013 à 22:39:23

      • Partager sur Facebook
      • Partager sur Twitter

      JCIFS - Problème de Connection pc/tablette

      × 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