unity调用Android百度地图

由于个人是Android小白,在这个配置上面被折磨了很久,因此写下这篇文章

工具:eclipse + unity5.6.1

首先去百度地图开发者平台下载你需要的资源,我只需要显示地图和定位,这个时候你一定要注意了,一定要把你所需要的功能全部选择了再下载,要不然BaiduLBS_Android.jar包里面只有你选择的那个单个需求的类,下载下来之后将BaiduLBS_Android.jar类复制个副本,将后缀改成.rar格式,解压出来(后面会用到里面的assets文件夹)

eclipse中配置:

首先将下载好的包导入eclipse

项目中的类:

考虑到后面要用unity来调用Android的方法,因此要建立一个UnityActivity继承UnityPlayerActivity,unity调用这个UnityActivity中的StartMapActivity()方法启动BaiduLocation activity

package com.map.unity;

import com.unity3d.player.UnityPlayerActivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class UnityActivity extends UnityPlayerActivity{
    Context mContext = null;
   // Button requestLocButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
    }
 
    public void StartMapActivity(String name)
    {
        Intent intent = new Intent(mContext,BaiduLocation.class);
        //intent.putExtra("name", name);
        this.startActivity(intent);
    }
}

 BaiduLocation是参考百度地图的示例根据我自己的需求做的,建议大家也自己去看一下百度官方给的案例

又有一个坑来了,参考百度地图示例写完BaiduLocation.java后我运行百度地图不出来,查了下才知道要配置上面的第二个类DemoApplication.java并在AndroidManifest.xml文件配置(这个时候我没有继承UnityPlayerActivity而是继承Activity,写了个按钮启动百度地图)

 

AndroidManifest.xml配置我就不多说了,基本上网上都有,文章下边我会给出项目源码,包括eclipse项目+unity项目,需要的话下载看看吧

至此Android端的坑踩完了

unity:

结构在这里

第一个坑是libs中的,可以仔细观察下与eclipse中的不同,unity中是armeabi-v7a,eclipse是arm64-v8a

 

第二个坑是assets,上面我有说过要解压BaiduLBS_Android.jar,就是用在这里,要拷贝进去,不然显示不了地图的。

原文地址:https://www.cnblogs.com/dsh20134584/p/7814244.html