Androidstudio项目包含多个模块调用

本文分享了解决Unity与Android跨平台交互时遇到的问题。通过创建独立模块进行交互,成功解决了非静态方法调用错误,并详细展示了代码实现及aar打包流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一个项目包含三个模块
在这里插入图片描述
打包成aar和unity交互时unity报错

no non-static method with name='UnityCallAndroid'

多次尝试无果,但是新建项目和unity交互没有问题,就想到在此项目里新建一个模块,unity和这个模块交互再调用其他模块的方法,尝试之后成功

package com.sound.anzhuoceshi;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import com.baidu.idl.face.example.MainActivity;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;

public class UnityMainAcivity extends UnityPlayerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
    }

    //unity调用Android
    public void UnityCallAndroid () {
        Toast.makeText(this,"unity调用android成功", Toast.LENGTH_LONG).show();
         // 直接跳到要调用的Activity  MainActivity是在app模块中的
        startActivity(new Intent(this,MainActivity.class));
        AndroidCallUnity();
    }

    //android调用unity
    public void AndroidCallUnity () {

        //第1个参数为Unity场景中用于接收android消息的对象名称
        //第2个参数为对象上的脚本的一个成员方法名称(脚本名称不限制)
        //第3个参数为unity方法的参数
        UnityPlayer.UnitySendMessage("Text", "fromeAndroid", "安卓给你发消息了.");
    }
}


要想实现调用其他模块方法要在这里添加上在这里插入图片描述
最后把项目过程要用到的模块全都打aar包导入unity,然后把和unity交互的模块的AndroidManifest.xml也放入unity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值