android - Javac 不会从 .java 创建 native .c 文件。 JNI

标签 android c android-ndk java-native-interface javac

我试图从我的类中创建 .c.h 文件,但遇到了一个非常奇怪的问题。虽然 javah 从我的 .java 文件完美地创建了一个 .h 文件 - javac 没有创建 .c 文件,而是创建了 .class 文件,日志中没有错误!

Java 源代码:

package com.iiordanov.bVNC;

//import java.io.IOException;

public class NativeCalls {
    static
    {
        System.loadLibrary("start-spice-xml");
    }
   public native static  String[] getPortAndPassword(String server, String name);//  throws IOException;
}

我目前在 Fedora 上运行。当我尝试从 src 文件夹运行时:

javac com/iiordanov/bVNC/NativeCalls.java

它创建 NativeCalls.class,但我需要 .c 样式类。另一方面,

javah -jni com.iiordanov.bVNC.NativeCalls

完美运行并创建 com_iiordanov_bVNC_NativeCalls.h

如何从我的 Java 源代码生成 .c 文件?

最佳答案

Javac 不是用来创建 C 文件的。它是一个 Java 编译器——字节码的源代码。

如果您想要一个包含 native 函数的空实现的 C 文件,请将 -stubs 选项传递给 javah

关于android - Javac 不会从 .java 创建 native .c 文件。 JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22415524/

相关文章:

android - 如何在多风格应用程序中添加多个 Google Maps API 配置

python - 用并行化的 C 程序扩展 Python(在 OMP 下)

c++ - C 中的结构声明中的冒号是什么意思?

android - 从sd卡动态加载共享库

android - Oppo Phone 4.4.2 在重启后没有收到我的应用程序的任何事件

android - Linux API,即使使用正确的文件描述符和权限,Write() 也会失败

java - 将表单数据发送到服务器 Api (Android)

c - 非 void 函数中的空返回,是未定义的行为吗?

java - 我应该从 getFft 看到什么样的输出?

android - 使用 NDK 交叉编译,对 le32toh 和 be32toh 的 undefined reference