• JNI javah 找不到 'xxxx' 的类文件。


    JNI 生成 头文件

    同样的命令行 

    javah -verbose -classpath ..\..\..\..\..\..\..\AndroidSDK\platforms\android-28\android.jar;. -jni com.example.myapplication.MainActivity

    注意:

    指定 -classpath 的时候   在 Win 上用 分号;  在 Mac OS 使用 : 分隔多个路径

    Windows 10  PowerShell   执行    

    当我用 :替换 ; 的时候   报错变成了找不到类文件

    在这里爬了挺久的坑   甚至指定sdk 路径的 盘符 有 :号  我都改成了相对路径   最终发现 在cmd 是可以执行成功的

    Windows 10  cmd  执行  是可以正常生成的。

    对  PowerShell 与 cmd 的差别还是不知道    掉了这个坑  记录一下

     感觉 是因为   PowerShell  对于   Linux 和 Win 风格的兼容  让他 无法 分清 这里面   指定 -classpath 时的 分隔符  在 Win 下的 ; 和 在 Linux 下的 ;导致的 这个问题。

    我的  jdk 版本 

    总而言之:

    如果 在 Win10 下的 cmd 中, 如果出现了 javah 找不到 类。那么 对照两个位置

    1、 执行 javah 的路径  是否在  app\src\main\java 文件夹  如果不在  那么尝试 cd 进入 java 文件夹 执行。 因为我这里 它找 java 文件 是相对当前文件夹的 。 参数  -classpath 指定的

    2、 -classpath   中 多个路径 的分隔符  在 Linux 中是 :  在 Win 下是 ;  一定要对应  否则就会  找不到  java 文件。

  • 相关阅读:
    Java中的权限修饰符
    return,break,continue三者的区别
    JS代码放在不同位置的区别
    创建画笔工具
    关于SPH的核函数求导过程
    c++多级指针与“多维”数组 摘自别人博客
    RAP开发入门-搭建RAP开发环境(一)
    06 media媒体查询
    resolution 像素密度
    手动配置viewport-04
  • 原文地址:https://www.cnblogs.com/lesten/p/16278502.html
Copyright © 2020-2023  润新知