| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity调用jar报错Failed resolution of: Lcom/xxx/R$layout -> 正文阅读 |
|
[游戏开发]Unity调用jar报错Failed resolution of: Lcom/xxx/R$layout |
想实现在Android这边写了UI,是继承Dialog的窗口,想通过Unity调用jar弹出该Dialog窗口,进行一些操作,发现弹出时会报错:Failed resolution of: Lcom/xxx/R$layout。 根据logcat的报错提示,找到发现是访问R.layout和R.id报了错。Android代码如下:
这错误关键字太难找了,不知道怎么解决,谷歌了好多关键字,终于找到相关的解决方式。 https://qiita.com/RyotaMurohoshi/items/3b95daeb8eaa6b487a20 大概问题是,Unity似乎会自己生成R.java,所以覆盖了,导致访问的时候报错提示找不到id。 改成如下访问方式即可。
用法举例: 例1: setContentView(R.layout.devices_dialog); 改为: int layoutId = getResources().getIdentifier("devices_dialog", "layout", getPackageName()); 例2: findViewById(R.id.lvBluetoothDevices); 改为: int layoutId = getResources().getIdentifier("lvBluetoothDevices", "id", getPackageName()); findViewById(layoutId); 注意:只有Activity类才有这个getResources方法。所以这是针对于代码写在Activity里的。 对于非Activity类,可以使用下列方式,获取主Activity调用里面的方法。亲测有效。下面提供了个工具类。 此工具类对Unity应用有效。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 11:47:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |