#android-ndk #android-studio-2.2 #javah
#android-ndk #android-studio-2.2 #javah
Вопрос:
Кто-нибудь может выяснить, в чем проблема в этой команде.
я использовал команду для генерации is:
-classpath $Classpath$ -v -jni $FileClass$
он выдает исключение:
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: FilesJavajdk1.8.0_102jrelibcharsets.jar;C:Program
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:129)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:107)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:64)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:503)
at com.sun.tools.javah.JavahTask.run(JavahTask.java:329)
at com.sun.tools.javah.Main.main(Main.java:46)
MyNDK.class:
public class MyNDK {
// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("MyLibrary");
}
public native int getHelloSum(int[] val,int size);
}
Комментарии:
1. Попробуйте заключить classpayh в кавычки,
"amp;Classpathamp;"
2. Если у вас уже есть код класса Java и внутри android Studio, не могли бы вы использовать функцию missingFunctionInspection внутри Android Studio, чтобы позволить ей сгенерировать прототип для вас? это небольшая хитрость в использовании, но это может избавить от некоторых проблем. Один из примеров находится внутри этого: codelabs.developers.google.com/codelabs/android-studio-jni / … в нем использовался gradle-experimental, но этот конкретный шаг работает и для CMake / Ndkbuild [ без изменений]. Он должен выполнять большую часть работы для вашей функции, одно незначительное изменение заключается в добавлении внешнего «C» для размещения cpp-файла
3. @AlexCohn вместо $ я использовал amp; с кавычками, теперь я получаю эту ошибку «C:Program FilesJavajdk1.8.0_102binjavah.exe «Ошибка -classpath amp; Classpath amp; -v -jni com.myndkapp.MyNDK: не удалось найти файл класса для ‘com.myndkapp.MyNDK’.
4. Моя ошибка; это должно быть
$
5. Да, это сработало @AlexCohn Спасибо
Ответ №1:
@Alex Cohn помог мне исправить это, правильный ответ :
-classpath "$Classpath$" -v -jni $FileClass$