当前位置: 首页 > 面试题库 >

Javah仍无法在OSX / Android Studio中找到类文件

长孙文栋
2023-03-14
问题内容

[在JNI中使用](http://codingdict.com/questions/155815 -> Javah错误时

…并且-> android-javah找不到我的班级

…我仍然无法javah上班。特别…

我的java类位于此处:

/Users/HKS/Code/MusicPlayer-Android/dspLibrary/src/main/java/com/company/audio/LibDSP.java`

从这个资料夹…

/Users/HKS/Code/MusicPlayer-Android/dspLibrary/src/main/java/`

我试过跑步

javah com.company.audio.LibDSP
javah -classpath . com.company.audio.LibDSP
javah -classpath /Applications/Android\ Studio.app/sdk/platforms/android-16/android.jar:. -jni com.company.audio.LibDSP

…我也在包含.java文件的实际文件夹中尝试过…

javah LibDSP
javah -classpath . LibDSP

都给平常…

error: cannot access com.company.audio.LibDSP
class file for com.company.audio.LibDSP not found
javadoc: error - Class com.company.audio.LibDSP not found.
Error: No classes were specified on the command line.  Try -help.

有任何想法吗?

附带的详细日志在搜索路径中显示了一些奇怪的东西。

[ Search Path: /System/Library/Java/JavaVirtualMachines....../Contents/Classes/charsets.jar//Applications/Android Studio.app/sdk/platforms/android-16/android.jar:. ]

注意,似乎没有分隔符-classpath。我已经尝试在前面加上“:”,但没有区别。我假设这是详细输出中的错误,而不是核心功能中的错误。


问题答案:

得到它了!它需要编译的类,而不是源。同样,class文件夹- ./build/intermediates/classes/debug在Android
Studio中从项目中隐藏。

这条线终于对我有用。在模块的根文件夹(/Users/HKS/Code/MusicPlayer-Android/dspLibrary/)中:

javah -classpath /Applications/Android\ Studio.app/sdk/platforms/android-16/android.jar:./build/intermediates/classes/debug -jni -d src/main/jni -force com.company.audio.LibDSP

请注意该-d标志是输出文件夹,并-force确保它会覆盖所有现有文件。



 类似资料:
  • 问题内容: 我需要javah和android-ndk的帮助。 我尝试为本机方法生成H文件,但是 javah 表示 未找到类文件 。 我的目标类的绝对名称为$ PROJECT_DIRECTORY / src / bt / nativeclient / BtnativeActivity.java, 并包含以下代码: 我试图从以下路径启动 javah : 我试图指定 -classpath 路径: 我尝试

  • 问题内容: 当我尝试在IntelliJ中创建项目时,在此行上收到以下错误: 错误: 是实现 接口* 的类 * 所有软件包都存在,我可以跳转到每个接口或类的声明,但是我不知道为什么IntellJ说它无法访问或找到它们?但是是接口而不是类 上面的声明位于一个名为jar的jar文件中,并且存在于Project图书馆员中。 问题答案: 该项目包含几个模块。在将库添加到项目库后,某些模块在其依赖项中缺少它。

  • 问题内容: 我试图从命令promopt运行一个示例Java应用程序,但出现以下错误: 我用来尝试运行此应用的命令是: 所有相关文件都位于当前工作目录中(.java,.class和.jar文件) 我用来构建.class文件的命令如下(有2个.java文件): 再次从同一工作目录运行-的内容(或多或少): 我试图以C#开发人员的身份学习Java,所以我在编程概念方面拥有深厚的背景,整个Java工具链目

  • 问题内容: 这是我的应用程序级别gradle文件: 编译项目时出现的完整错误是: 错误:任务’:app:transformDexArchiveWithExternalLibsDexMergerForDebug’的执行失败。 java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex

  • 我在生成签名的apk时出错 它在构建APK时工作正常。 这里有什么问题?