2015-02-07 3 views
4

У меня проблема с javah, я прочитал около 4 или 5 сообщений stakcoverflow с ошибкой «разрешен», но все работает для меня.Javah: Ошибка: не удается получить доступ к android.support.v7.app.ActionBarActivity

Моя проблема:

Когда я выполнить команду javah у меня есть эта ошибка:

Error: cannot access android.support.v7.app.ActionBarActivity 
    class file for android.support.v7.app.ActionBarActivity not found 

То, что я пробовал:

Это команда, которую я испытал :

C:\Users\MyUser\workspace3\PruebaApp\jni\include>javah -classpath ../../bin/classes;C:\Users\MyUser\AppData\Local\Android\sdk\platforms\android-14\android.jar -o ACK.h com.test.prueba.ACK 

Я тоже пробовал одну и ту же команду только с «/» и только «\» для разделения директорий.

Я пробовал его с android-11, android-14 и android-21.

Я попытался добавить следующие внешние банки для моего проекта: «андроид-поддержка-v4.jar» и «андроид-поддержка-v7-appcompat.jar»

Я попытался сделать это создание что внешняя конфигурация сборки с затмением, как здесь: Javah Error android.app.Activity not found

инструментов Я использую

Я работаю с затмением Юнонами, на окнах 8.1.

Папка, из которой я выполнил команду, - {project_dir}/jni/include. Я попробовал его из разных папок, правильно изменив команду.

файл .java, который содержит нативные функции является «ACK.java» в пакете: «com.test.prueba»

В проекте андроида библиотека, я использую андроид 5.0. 1

Что я могу сделать? Заранее спасибо.

+2

Я «решил» свою проблему. Я поместил абсолютные пути в отсутствующие файлы: «android-support-v7-appcompat» и «android-support-v4». Результатом команды javah является: javah -classpath ../../bin/classes;/sdk/platforms/android-14/android.jar;/sdk/extras/android/support/v7/appcompat /libs/android-support-v7-appcompat.jar;/sdk/extras/android/support/v7/appcompat/libs/android-support-v4.jar -o Xh com.test.prueba.ACK. Но проблема все еще заключается в том, что мне нужно написать все выше, почему? – Dan

ответ

9

Собственные методы, объявленные в вашем классе java, достаточны для генерации заголовка JNI. В вашем примере команда javah 's опция -classpath не очень полезна. Предположим, что com/test/prueba/ACK.java - это класс, который вы обрабатываете для создания заголовка JNI. Вы можете изменить рабочую директорию {project_dir}\src, выполнить команду

javah com.test.prueba.ACK 

соответствующий файл заголовка JNI com_test_prueba_ACK.h будет создан в текущем каталоге.

+0

Ты спас мой день! Такая простая команда, и никто не отметил этот ответ! Большое спасибо. – Sarvan

+0

как получилось ошибка 'Ошибка: Не удалось найти файл класса для com.test.prueba.ACK.'? –

+0

@lifeevader Это был пример от искателя, вы должны изменить его на свое настоящее имя класса. – alijandro

2

Вы должны написать полный путь android-support-v7-appcompat.jar и android-support-v4.jar в параметре pathpath.

+0

Эти файлы JAR находятся в Android/Sdk/extras/android/support/v7/appcompat/libs / – ther

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