Я пытаюсь сгенерировать C-заголовок с помощью "javah - jni", и javah.exe возвращает ошибку, которую я никогда раньше не видел.Я использую JNI, потому что я использую NDK для разработки на C / C ++ для Android.
Вот сообщение об ошибке:
An exception has occured in the compiler (1.7.0_01).
java.lang.ClassCastException:
com.sun.tools.javac.api.ClientCodeWrapper$WrappedJavaFileManager cannot be cast to
com.sun.tools.javac.file.JavacFileManager
at com.sun.tools.javac.main.Main.compile(Main.java:411)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:513)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
at com.sun.tools.javah.Main.main(Main.java:46)
Вот файл Java, который я использую с jni:
package AndroidTest.AccelerometerTest
public class NativeCaller{
final private static String LIB_NAME = "AccelerometerTest";
static
{
System.LoadLibrary( LIB_NAME );
}
public static native int TestMethod();
public static native float ComputePointPosition();
}
Я искал на Параде Жуков Солнца, но не смог найти ничего полезного.
РЕДАКТИРОВАТЬ:
Это моя платформа:
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)
Я вызываю javah так: javah -jni NativeCaller.java
Я называю это, находясь в папке .java.
Я пытался вызвать его с полным именем пакета, но он не может найти класс.