Без подробностей сложно сказать. Посмотрев на библиотеку на этом сайте, возможно, вы назвали свой класс по-другому. Вам нужно вызвать ваш класс Java Giffle
, и он должен быть в пакете org.jiggawatt.giffle
. Это не соглашение об именах, на которое вы случайно наткнетесь; -)
package org.jiggawatt.giffle;
public class Giffle {
static {
System.loadLibrary("gifflen");
}
public native int Init(String gifName, int w, int h,
int numColors, int quality,
int frameDelay);
public native void Close();
public native int AddFrame(int[] inArray);
}
Чтобы использовать его, вы должны либо сделать вызовы в классе Giffle
, либо, возможно, более чистый способ - использовать экземпляр:
Giffle giffle = new Giffle();
giffle.Init(...);
giffle.AddFrame(...);
giffle.Close();
Кажется немного странным, что часть Java не была в zip, тем более что имя класса жестко закодировано в символе C. Возможно, у парня, который написал это, была целая куча дополнительного кода в части Java, которую он не хотел, чтобы кто-то видел.
Насколько я могу судить, код C и C ++ завершен. Вам не нужно изменять его вообще. Реализации нативных методов находятся в gifflen.cpp и имеют имена вроде Java_org_jiggawatt_giffle_Giffle_Init
. У них есть правильные аргументы нативной стороны для соглашения о вызовах JNI.