Java 如何使用J2V8在Android中使用NodeJS

Java 如何使用J2V8在Android中使用NodeJS,java,android,node.js,j2v8,Java,Android,Node.js,J2v8,我已经使用库为android创建了代码,用于在android mobile中执行nodejs脚本。但当我运行应用程序时,它会给我错误 梯度依赖 代码 错误 请帮我解决这个错误 正常V8发动机工作正常,但高于createNodeJS时出现错误 V8 v8 = V8.createV8Runtime() 根本原因 J2V8库包含一个JAR和一个包含v8引擎的本机库。在您的情况下,JNI本机库未使用-D NODE_COMPATIBLE=1选项编译,因此会出现以下错误: java.lang.Runti

我已经使用库为android创建了代码,用于在android mobile中执行nodejs脚本。但当我运行应用程序时,它会给我错误

梯度依赖 代码 错误 请帮我解决这个错误


正常V8发动机工作正常,但高于
createNodeJS
时出现错误

V8 v8 = V8.createV8Runtime()
根本原因 J2V8库包含一个JAR和一个包含v8引擎的本机库。在您的情况下,JNI本机库未使用
-D NODE_COMPATIBLE=1
选项编译,因此会出现以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{in.asissuthar.lion/in.asissuthar.lion.ConsoleActivity}: java.lang.UnsupportedOperationException: StartNodeJS Not Supported.
这可以通过查看J2V8代码来断言。我在下面添加了一个片段:

#ifndef NODE_COMPATIBLE
  (env)->ThrowNew(unsupportedOperationExceptionCls, "StartNodeJS Not Supported.");
#endif
可能的解决方案:
  • 您需要使用
    -D NODE\u COMPATIBLE=1
    选项重新编译JNI源代码。源代码可在
  • 在他们的github上提交一个票证,这样他们就可以通过节点支持更新本机库来更新aar

  • 我认为您需要linux环境。如果你真的不担心建造自己的房子,你可以试试这个。J2V8的构建系统即将得到显著改进。它为android提供了开箱即用的配置,包括Node。见:
    V8 v8 = V8.createV8Runtime()
    
    java.lang.RuntimeException: Unable to start activity ComponentInfo{in.asissuthar.lion/in.asissuthar.lion.ConsoleActivity}: java.lang.UnsupportedOperationException: StartNodeJS Not Supported.
    
    #ifndef NODE_COMPATIBLE
      (env)->ThrowNew(unsupportedOperationExceptionCls, "StartNodeJS Not Supported.");
    #endif