2013-07-13 6 views
6

Im, обучающийся коду Android в NDK на WINDOWS Eclipse .... следил за учебной книгой Sylvain Ratabouil. Итак, im in Run | Внешние инструменты | Конфигурации внешних инструментов ... создание новой конфигурации программы.java.lang.IllegalArgumentException: Недействительное имя класса: ANDROID NDK javah

Имя: MyProject javah

Адрес: $ {env_var: JAVA_HOME} \ Bin \ javah.exe

Рабочий каталог: $ {workspace_loc:/MyProject/бен}

Проблема возникает в аргументах ... при попытке Аргументы: -d $ {workspace_loc:/MyProject/jni} com.myproject.MyActivity как говорится в книге

я получаю, когда я нажимаю запустить

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: –d 

при попытке $ {workspace_loc:/MyProject/JNI}} com.myproject.MyActivity

я получить

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: C:\Paul\Workspace\MyProject\jni 

UPDATE: я поставил -classpath первый и он работает, но не может найти файл класса для com.myproject

+0

Смешно, это не сработало для меня. Я в маке. Это решение http://stackoverflow.com/questions/9200373/ndk-build-eclipse-argument-not-find-class – Guilherme

ответ

5

после дальнейших исследований .... Я сделал это.

я установить аргументы

-d $ {workspace_loc:/MyProject/JNI} -classpath C: \ Paul \ андроид-СДК-окна \ платформы \ андроида-17 \ android.jar; $ {workspace_loc :/MyProject/bin/классы} com.myproject.MainActivity

0

хорошо в случае ...

1-> Goto (CD C: \ Program Files \ Java \ jdk1.7.0_60 \ Bin)

2-> C: \ Program Files \ Java \ jdk1.7.0_60 \ bin> javah -jni -classpath F: \ Android_OpenGLES \ FibonacciNative \ Bin \ Классы -d F: \ Android_OpenGLES \ FibonacciNative \ JNI \ com.example.fibonaccinative.FibLib

без создания/переменной окружения ...

1

Я также провожу некоторое долгое время по этой проблеме при работе с упомянутой книгой об Android NDK.

Пожалуйста, обратите внимание на следующее: Java-имя_класса НЕ написано в { }, просто написать что-то вроде com.myproject.MyActivity

-classpath Параметр может принимать несколько путей, деленного точкой с запятой.

В моем случае это параметры работали:

Адрес:

${env_var:JAVA_HOME}\bin\javah.exe 

Working Directory:

${workspace_loc:/myproject/bin} 

Аргументы:

-d ${workspace_loc:/myproject/jni} -classpath ${workspace_loc:/myproject/bin/classes};"C:\Eclipse\sdk\platforms\android-18\android.jar" com.myproject.MyActivity 

(BTW .: Правильный Adroid.jar файл ссылается внутри проекта Eclipse.)

0

ДА ВОТ ПРАВИЛЬНО абстрактнее бы

-d ${workspace_loc:/MyProject/jni} -classpath ${env_var:ANDROID_SDK_HOME}\platforms\android-16\android.jar;${workspace_loc:/MyProject/bin/classes} com.myproject.MyActivity 
1

Me также сталкиваются с той же проблемой сегодня, я нашел менее утомительной, как и следующие ...

  1. как «Местоположение» установить javah из системы
  2. в качестве «рабочего каталога» задает каталог bin/classes проекта ($ {workspace_loc:/HelloWorld/bin/classes})
  3. как «Аргумент» установить папку jni в качестве выходного каталога и указать класс на который вы хотите запустить javah (-d "$ {workspace_loc:/HelloWorld/JNI}" com.example.helloworld.MainActivity)

NB :: Не забудьте двойной qoute (") вокруг выход на третьем этапе («$ {workspace_loc:/HelloWorld/jni}")

Полная картина также прилагается следующая

All 3 steps in a single picture

0

После я успешно попробовал

javah com.sense.kios.Calculation 

Примечание: Включить имя пакета.

В случае, если javah не найден как команда, и вы получаете

The program 'javah' can be found in the following packages: 
* gcj-4.6-jdk 
* gcj-4.7-jdk 
* openjdk-7-jdk 
* openjdk-6-jdk 
Try: sudo apt-get install <selected package> 

использовать прямой путь пути JDK, в моем случае это /usr/lib/jvm/jdk1.8.0/bin/javah.

Смежные вопросы