java - java插件在Android Studio项目中工作,但不在Unity中
问题描述
我正在使用Moquette Android 代理。因此,编译 maven lib 并在 Android Studio 项目中使用 jar 可以正常工作!
import org.eclipse.moquette.server.Server;
Server server = new Server();
server.startServer();
这就是java代码,在Unity中我将函数调用包装起来:
AndroidJavaClass server = new AndroidJavaClass("org.eclipse.moquette.server.Server");
server.Call("startServer");
但是,Unity 项目正在构建时没有任何错误,但是当我开始时,我没有收到任何错误,也没有调用的调试输出(既不是来自 Unity,也不是来自 java 插件)。所以 Unity 没有抱怨,但我猜 java 代码也没有执行。
有任何想法吗?
解决方案
使用AndroidJavaObject而不是AndroidJavaClass,如下所示:
AndroidJavaObject server = new AndroidJavaObject("org.eclipse.moquette.server.Server");
server.Call("startServer");
如果你想调用一个静态方法,你可以使用AndroidJavaClass,但是你必须使用CallStatic(...)方法。
AndroidJavaClass server = new AndroidJavaClass("org.eclipse.moquette.server.Server");
server.CallStatic("startServer");
推荐阅读
- apache-spark - 如何从列标题中的大 rdd 创建 rdd
- javascript - 反应原生不从父应用调用Android原生方法
- ruby-on-rails - Capybara:Scraper 访问的是加拿大网站而不是美国网站。Indeed.com
- postgresql - 如何在存储过程中编写创建表语句
- angular - Angular 6 服务中未定义 HttpClient 实例
- python - 如何跨所有模板访问模型属性?
- css - 表格列的 CSS 溢出到下一列
- angular - Property Decorator 不替换定义?
- reactjs - 在创建反应应用 Reactjs 应用程序中使用通用 Sdk 模块共享代码库
- dart - 使用文本模板或 DSL [例如 YAML 或 JSX] 创建小部件