Androidstudio中使用javah 找不到类文件

Androidstudio中使用javah 找不到类文件

由于学习NDK开发 头一次使用javah,尝试了好多次在网上也搜了个遍,也没有找到解决的方案,尝试了好久终于解决,特此把解决方案写出来,供参考:


  • 直接到达你的项目路径下 如:你的项目路径\app\vuild\intermediates\classes\debug 输入javah -jni com.example.JniTest ,生成的.h文件便在项目路径\app\vuild\intermediates\classes\debug 的路径下
  • 一般来说按上面操作都是可以成功执行的,如果类中引用了其他类库的话javah也会报找不到该类,此时执行如下操作,例如:
    D:\AndroidStudioProjects\JniTT\app\build\intermediates\classes\debug>javah -classpath D:\AndroiStdioSDK\Android\sdk\platforms\android-25\android.jar;. -jni jiang.chun.com.jnitt.MainActivity
    也可以生成相应的.h文件 (以上两种均是自己尝试过的,后面仍会补充)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Android Studio 使用 FFmpeg 的 so 库,可以按照以下步骤进行操作: 1. 将 FFmpeg 的 so 库添加到项目: 将 FFmpeg 的 so 库文件拷贝到项目的 `src/main/jniLibs` 目录下,其 `src/main` 是项目的主目录,`jniLibs` 是自己创建的目录,用于存放 JNI 动态库文件。 2. 在 build.gradle 配置 ndk 和 sourceSets: 在 `build.gradle` 文件添加以下配置: ``` android { ... defaultConfig { ... ndk { // 指定支持的 CPU 架构 abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } } ``` 3. 创建 JNI 接口: 在项目的 `src/main/java` 目录下创建一个 Java ,用于实现 JNI 接口。例如,可以创建一个名为 `FFmpegJNI` 的,其包含以下代码: ``` public class FFmpegJNI { static { System.loadLibrary("ffmpeg"); } public static native String avcodecConfiguration(); } ``` 其,`System.loadLibrary("ffmpeg")` 用于加载 FFmpeg 的 so 库,`avcodecConfiguration()` 方法是 JNI 接口的一个方法,用于获取 FFmpeg 的配置信息。 4. 生成 JNI 头文件: 在终端进入项目的 `src/main/java` 目录下,执行以下命令: ``` javac FFmpegJNI.java javah -jni FFmpegJNI ``` 这些命令将生成一个名为 `FFmpegJNI.h` 的文件,其包含 JNI 接口的声明。 5. 编写 JNI 实现: 在项目的 `src/main/jni` 目录下创建一个名为 `FFmpegJNI.cpp` 的文件,用于实现 JNI 接口。例如,可以创建以下代码: ``` #include <jni.h> #include <string> #include "FFmpegJNI.h" #include "libavcodec/avcodec.h" extern "C" JNIEXPORT jstring JNICALL Java_com_example_ffmpegtest_FFmpegJNI_avcodecConfiguration(JNIEnv *env, jclass clazz) { std::string result; result += "AVCodec configuration: "; result += avcodec_configuration(); return env->NewStringUTF(result.c_str()); } ``` 其,`avcodec_configuration()` 方法是 FFmpeg 库的一个方法,用于获取编解码器的配置信息。 6. 编译项目: 在终端进入项目的根目录,执行以下命令: ``` ./gradlew assembleDebug ``` 这个命令将编译项目,并在 `build/outputs/apk` 目录下生成一个名为 `app-debug.apk` 的文件。 7. 运行项目: 将生成的 apk 文件安装到 Android 设备上,并运行项目。在项目调用 `FFmpegJNI.avcodecConfiguration()` 方法,即可获取 FFmpeg 的编解码器配置信息。 注意:在 Android 6.0 及以上的版本,需要动态获取权限才能使用 JNI 动态库文件。可以使用 ActivityCompat.requestPermissions() 方法或者在 AndroidManifest.xml 文件声明权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值