Javah Error android.app.Activity not found

有些话、适合烂在心里 提交于 2019-11-27 22:57:22

Try adding to your classpath:

-classpath <android-sdk-location>/platforms/android-8.jar

I found it, this is how it goes:

javah -o com_myproject_MyActivity.h -classpath <android-sdk-location>/platforms/android-8.jar;myprojectDIR\bin\classes com.myproject.MyActivity

Try the following in Eclipse,

Go to > Run | External Tools| External Tool Configurations Under Program create new configuration by clicking small icon.

Name it.

Location would be : C:\Program Files\Java\jdk1.7.0_04\bin\javah.exe

Working Directory would be: ${workspace_loc:/My_First_NDK/bin/classes} and

Arguments would be: -classpath ${workspace_loc:/My_First_NDK/bin/classes} -bootclasspath "C:\adt-bundle-windows-x86-20140624\sdk\platforms\android-19\android.jar" -v -d ${workspace_loc:/My_First_NDK/jni} com.mypackage.ndk.HelloNDK

In order to generate native header files javah needs:

  • your classes (usually under build/intermediates/classes)
  • Android classes (usually under $ANDROID_HOME/platforms/android-%ver%/android.jar)

So you simply pass them in -classpath argument

The main challenge for me was basically passing both of them - you have to use : as a separator and paths must be absolute.
See Oracle docs

Thus you may end up with something like this:
javah -classpath <full path to app>build/intermediates/classes/debug:<full path to sdk>/platforms/android-26/android.jar com.myproject.MyActivity

I found it, this is how it goes:

   E:\workspeaceResearch\DAMMADARJNI\src>javah -classpath "E:\Software\sdk\platform
   s\android-19/platforms/android-8.jar"; -jni com.dammadar.jni.Home_Screen
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!