开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:490

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 761|回复: 15

[其他] 大神们,请问unity和Android交互的时候,为什么总是调用不到Android的方法

[复制链接]  [移动端链接]
排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
发表于 2017-8-5 17:36:40 | 显示全部楼层 |阅读模式
5蛮牛币
交互的步骤是完全按照网上来的,但是调用里的方法的时候总是调用不到QAQ
unity部分的代码:
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");
activity.Call("initaaa", "登录了");


Android里的代码:
public class MuKuMainActivity extends UnityPlayerActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
Toast.makeText(this, "調用了sdk", Toast.LENGTH_LONG).show();//这一步是可以走到的
//init("初始化成功");
}
public void initaaa(String str){
Toast.makeText(this, str, Toast.LENGTH_LONG).show();
}
}
求有经验的大佬帮忙找找问题在哪

回复

使用道具 举报

6蛮牛粉丝
1442/1500
排名
2826
昨日变化
15

7

主题

645

帖子

1442

积分

Rank: 6Rank: 6Rank: 6

UID
83438
好友
2
蛮牛币
2488
威望
0
注册时间
2015-3-23
在线时间
370 小时
最后登录
2017-12-13
发表于 2017-8-5 17:36:41 | 显示全部楼层
玄清和 发表于 2017-8-8 18:18
我用的方式是从Android里导出jar包的方式做的交互,包名肯定是一样的,AndroidMainfest也配置了,现在因 ...

那你这比较奇怪了 你可以弄一个新的项目 然后调用android方法 看看能不能成功
还有android项目内的包名 比如com.abc.def 你的andorid项目目录应该是com/abc/def/activity.java
这样的结构 如果还不行 就换换 android SDK
先用新的项目 测试通过 然后再整合你大项目

回复

使用道具 举报

排名
22691
昨日变化
16

21

主题

109

帖子

357

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
156801
好友
2
蛮牛币
585
威望
0
注册时间
2016-7-15
在线时间
179 小时
最后登录
2017-11-6
发表于 2017-8-7 09:43:21 | 显示全部楼层
jc.GetStatic 这个函数表示调用的是静态方法,而你的JAVA代码里面的initaaa 并不是静态函数。把initaaa 添加static修饰,或者,用jc.Get。

回复

使用道具 举报

排名
22691
昨日变化
16

21

主题

109

帖子

357

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
156801
好友
2
蛮牛币
585
威望
0
注册时间
2016-7-15
在线时间
179 小时
最后登录
2017-11-6
发表于 2017-8-7 09:49:27 | 显示全部楼层
204有个大坑 发表于 2017-8-7 09:43
jc.GetStatic 这个函数表示调用的是静态方法,而你的JAVA代码里面的initaaa 并不是静态函数。把initaaa 添 ...

尴尬,搞错了

回复

使用道具 举报

6蛮牛粉丝
1442/1500
排名
2826
昨日变化
15

7

主题

645

帖子

1442

积分

Rank: 6Rank: 6Rank: 6

UID
83438
好友
2
蛮牛币
2488
威望
0
注册时间
2015-3-23
在线时间
370 小时
最后登录
2017-12-13
发表于 2017-8-7 09:58:12 | 显示全部楼层
报错了吗?还是什么反应都没有 话说你导出jar包 放到Unity中了么

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-7 13:02:48 | 显示全部楼层
zhulin5230 发表于 2017-8-7 09:58
报错了吗?还是什么反应都没有 话说你导出jar包 放到Unity中了么

打包的时候正常打包,没有报错也没有反应,eclipse导出jar包放入了unity里Plugins下的Android的bin文件夹下了。

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-7 13:10:42 | 显示全部楼层

额,还是谢谢你

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-7 16:59:48 | 显示全部楼层
zhulin5230 发表于 2017-8-7 09:58
报错了吗?还是什么反应都没有 话说你导出jar包 放到Unity中了么

Android 里的 onCreate方法是可以正常执行的,但是别的方法都调用不到,请问您以前遇到这样的问题吗?

回复

使用道具 举报

6蛮牛粉丝
1442/1500
排名
2826
昨日变化
15

7

主题

645

帖子

1442

积分

Rank: 6Rank: 6Rank: 6

UID
83438
好友
2
蛮牛币
2488
威望
0
注册时间
2015-3-23
在线时间
370 小时
最后登录
2017-12-13
发表于 2017-8-8 09:25:24 | 显示全部楼层
玄清和 发表于 2017-8-7 16:59
Android 里的 onCreate方法是可以正常执行的,但是别的方法都调用不到,请问您以前遇到这样的问题吗? ...

没有遇到过 你可以按照度娘一下 Unity接入sdk的方法  重新执行一遍 原理是一样的

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-8 14:32:12 | 显示全部楼层
zhulin5230 发表于 2017-8-8 09:25
没有遇到过 你可以按照度娘一下 Unity接入sdk的方法  重新执行一遍 原理是一样的 ...

已经重新操作了好几遍了,但是依然无法执行到调用的方法QAQ

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-8 16:22:40 | 显示全部楼层
zhulin5230 发表于 2017-8-8 09:25
没有遇到过 你可以按照度娘一下 Unity接入sdk的方法  重新执行一遍 原理是一样的 ...

而且使用N种方式后感觉像是跟上下文环境相关,currentActivity非null但是调用无效,现在原因未知,新建了好几个Android工程都没有用

回复

使用道具 举报

6蛮牛粉丝
1442/1500
排名
2826
昨日变化
15

7

主题

645

帖子

1442

积分

Rank: 6Rank: 6Rank: 6

UID
83438
好友
2
蛮牛币
2488
威望
0
注册时间
2015-3-23
在线时间
370 小时
最后登录
2017-12-13
发表于 2017-8-8 17:16:52 | 显示全部楼层
玄清和 发表于 2017-8-8 16:22
而且使用N种方式后感觉像是跟上下文环境相关,currentActivity非null但是调用无效,现在原因未知,新建了 ...

配置AndroidManifest.xml了? 把Unity的包导入到Android里面了吗?
[发帖际遇]: 一个袋子砸在了 zhulin5230 头上,zhulin5230 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1442/1500
排名
2826
昨日变化
15

7

主题

645

帖子

1442

积分

Rank: 6Rank: 6Rank: 6

UID
83438
好友
2
蛮牛币
2488
威望
0
注册时间
2015-3-23
在线时间
370 小时
最后登录
2017-12-13
发表于 2017-8-8 17:34:09 | 显示全部楼层
android 项目包名 要和unity中的一样 如果这些都对的话 就没问题  你可以截图上来看看
[发帖际遇]: zhulin5230 捡了钱没交公 蛮牛币 降了 2 . 幸运榜 / 衰神榜

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-8 18:18:48 | 显示全部楼层
zhulin5230 发表于 2017-8-8 17:34
android 项目包名 要和unity中的一样 如果这些都对的话 就没问题  你可以截图上来看看 ...

我用的方式是从Android里导出jar包的方式做的交互,包名肯定是一样的,AndroidMainfest也配置了,现在因为找原因所以改了配置,之前是完全按照网上来,现在改成了 4RWEXYH21HQHK(B4L6@ 这个样子。

回复

使用道具 举报

排名
19445
昨日变化
13

2

主题

17

帖子

58

积分

Rank: 2Rank: 2

UID
110135
好友
0
蛮牛币
118
威望
0
注册时间
2015-6-24
在线时间
20 小时
最后登录
2017-8-11
 楼主| 发表于 2017-8-9 14:23:22 | 显示全部楼层
zhulin5230 发表于 2017-8-5 17:36
那你这比较奇怪了 你可以弄一个新的项目 然后调用android方法 看看能不能成功
还有android项目内的包名  ...

照着这个思路把工程复制了一个,然后用最初的步骤走一遍就好了,原因未知,但是问题解决了,谢谢

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表