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???