標簽:
java.lang.noclassdeffounderro?環境:Android Studio, Mac OS
目標: 用javah 為MainActivity.class 生成 jni header 文件
正確的命令是
cd
javah -classpath ::.
------示例 -----
cd?app/build/intermediates/classes/debug
javah -classpath :/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.4.0/appcompat-v7-23.4.0-sources.jar:. com.y.www.ndk_test.MainActivity
------遇到的問題1 -------
Error: cannot access android.support.v7.app.AppCompatActivity
class file for android.support.v7.app.AppCompatActivity not found
1. 因為MainActivity繼承了AppCompatActivity, 需要在classpath中加入AppCompatActivity的jar包,
可以現在android studio中command+點擊 打開AppCompatActivity,然后右鍵copy path, 就能找到jar包的路徑了。
2. 有些教程寫的是Android.jar包的路徑,但是AppCompatActivity并不是在Android.jar包里面,這一點需要注意。
........遇到的問題2?..........
Error: Could not find class file for ‘com.y.www.ndk_test.MainActivity‘.
1. 加了classpath之后就找不到需要生成jni header文件的class file了, 需要在classpath后面再加上當前路徑. "."表示當前路徑, classpath之前用":"分隔 (Mac OS的分隔符是":"不是";")
2. 需要寫完整的包名+類名,所以不能cd到MainActivity所在的文件夾,應該cd到debug文件夾
----------總結--------
找不到class file, 要么是class文件根本不存在(沒有build project) 要么是路徑出了問題,如果路徑寫的對,也不一定要cd到debug文件夾。
如果要改變生成的.h文件的路徑,可以加上-d
javah -classpath :/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.4.0/appcompat-v7-23.4.0-sources.jar:-d ../../../../src/main/jni com.y.www.ndk_test.MainActivity
小小的一個命令卡了我2個小時 @_@
標簽:
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态