java.lang.noclassdeffounderro,java header file_javah 生成header file 報錯 問題解決

 2023-12-06 阅读 22 评论 0

摘要:標簽:java.lang.noclassdeffounderro?環境:Android Studio, Mac OS目標: 用javah 為MainActivity.class 生成 jni header 文件正確的命令是cd javah -classpath ::. ------示例 -----cd?app/build/intermediates/classes/debugjavah -classpath :/Users/userna

標簽:

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個小時 @_@

標簽:

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/187466.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息