Originariamente inviato da salvio78
E a te il nome e il prototipo non sembrano uguali?
Ok .... bisogna chiarire alcune cose ...
Originariamente inviato da salvio78
Ehi io in java non sono geniale ma in C non sbaglio un colpo e so bene che vuol dire nome e prototipo, se hai sollevato questa obiezione significa che se tu che non sai bene cosa dici.
Prima di tutto sappi che ho alle spalle 2 corsi di specializzazione in cui ho studiato il "C" e 7 anni di esperienza professionale con il "C" .... quindi pensaci molto bene prima di dire ad altri che non sanno quello che dicono!
Originariamente inviato da salvio78
La classe e la libreria dichiarano lo stesso metodo e lo stesso prototipo, quindi se c'è qualche problema non è là.
static {
System.loadLibrary("metodo.a");
}
perchè lo si mette in quella classe?
Veniamo alla questione tecnica.
Io ho preso la tua classe (quella che hai messo nel primo post):
codice:
public class Classe
{
public int classe;
public native int metodo(int classe);
static {
System.loadLibrary("metodo.a");
}
}
L'ho compilata ed ho ottenuto con javah l'header da includere.
Il prototipo generato è:
JNIEXPORT jint JNICALL Java_Classe_metodo (JNIEnv *, jobject, jint);
Ti pare che sia uguale al tuo:
int metodo(int a);
????
Quindi nel tuo programma C/C++ devi mettere:
codice:
JNIEXPORT jint JNICALL Java_Classe_metodo (JNIEnv *env, jobject obj, jint value)
{
....
....
}
All clear???