Bonjour,
je suis actuellement en train de développer une application pour android qui nécessite l'utilisation de l'algorithme k-mean. Mais lorsque j'ouvre le fragment contenant l'algorithme, j'ai un NullPointerException à la ligne ou il devrait s’exécuter. Je précise que sans cette ligne de code, le fragment s'ouvre sans soucis.
Voici la classe du fragment qui pour l'instant ne contient que la création de ce dernier :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package info.androidhive.slidingmenu; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import info.androidhive.slidingmenu.datamining.Cluster; import weka.clusterers.SimpleKMeans; /** * Created by Florian on 02/02/2016. */ public class ActivitiesFragment extends Fragment { public Cluster cl; public ActivitiesFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_activities, container, false); Log.v("Test cluster file",cl.clusterKMean("letter.txt",5,26).toString()); return rootView; } }
et voici ma classe Cluster :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 package info.androidhive.slidingmenu.datamining; import android.util.Log; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import weka.clusterers.SimpleKMeans; import weka.core.Instances; /** * Created by Florian on 02/02/2016. */ public class Cluster { private static String TAG = Cluster.class.getName(); public SimpleKMeans clusterKMean(String dataFile, int seed, int clusters){ SimpleKMeans kmeans; BufferedReader input = null; Instances data = null; try{ input = new BufferedReader(new FileReader(dataFile)); }catch (FileNotFoundException ex){ Log.d(TAG,"Error, file not found"); ex.printStackTrace(); } kmeans = new SimpleKMeans(); kmeans.setSeed(seed); try { kmeans.setNumClusters(clusters); } catch (Exception e) { Log.e(TAG, "error during creation of " + clusters + " clusters"); e.printStackTrace(); } try { data = new Instances(input); } catch (IOException e) { Log.e(TAG,"Error during instances creation"); e.printStackTrace(); } try { kmeans.buildClusterer(data); } catch (Exception e) { Log.e(TAG,"Error during clustering data"); e.printStackTrace(); } return kmeans; } public int getNumberCluster(SimpleKMeans kmeans) throws Exception { return kmeans.getAssignments().length; } }
Malheureusement, je n'ai pas d'autre détail sur l'erreur à part que l'objet SimpleKMeans crée reste à priori à null mais je ne sais pas pourquoi. Merci à ceux qui m'aideront.
Partager