正在上传图片(0/1)

关于AndroidStudio环境程序搭建的小心得

 0
手机看帖 14 11754
本人是深大在校研三学生,已经进入找工作的紧张阶段了,很荣幸,已成功进入了Tencent和Baidu知名互联网企业
的校招二面并阵亡。。

研究生一直在做嵌入式和Android的开发,现在毕设又做工业DPM的提取识别,看到同学都签了这个那个公司的,心里挺郁闷的,也想让各位飞友指条明路,不胜感激。

==============================================================

言归正传,买PHANTOM完全是出于兴趣,在外实习有些项目奖励,就买了这个玩具回来了,本身有一个F45所以对飞行器什么的还是比较有爱的。
用AndroidStudio照着GitHub的例程搭建第一个FPV程序,还真遇到了一点点小麻烦,在这里给各位提个醒,如有遗漏请指出,不胜感激。



AS的版本是1.3.2,导入DJI-SDK-LIB,指定依赖库,一切正常。

1. 需要注意的是,建立FPV活动的时候类一定要命名为FPVActivity,layout要命名为activity_fpv.xml,这个在官方演示中没有突显出来,后面仔细看才发现。。建议吧这行文字标红突显出来~~

然后连接手机调试,运行期间又出现问题了,如下


无法加载lib,想想应该是DJI的.so文件调用失败了,那就导入进来吧。

2. 在src/main/建立jniLibs文件夹,然后把armeabi和armeabi-v7a两个目录拷贝进来,AS应该会自动刷新了,如下图


然后再执行,就没有问题了。

3. 注意避免在没有USB连接或飞机没有连接的时候出现问题,注意以下方法
/**
* 初始化飞行器类型
* @param type
*/
private boolean onInitSDK(int type) {
    boolean result = false;
    switch (type) {
        case 0: {
            result = DJIDrone.initWithType(this.getApplicationContext(), DJIDroneTypeDef.DJIDroneType.DJIDrone_Vision);
            // The SDK initiation for Phantom 2 Vision or Vision Plus
            break;
        }
        case 1: {
            result = DJIDrone.initWithType(this.getApplicationContext(), DJIDroneTypeDef.DJIDroneType.DJIDrone_Inspire1);
            // The SDK initiation for Inspire 1 or Phantom 3 Professional.
            break;
        }
        case 2: {
            result = DJIDrone.initWithType(this.getApplicationContext(), DJIDroneTypeDef.DJIDroneType.DJIDrone_Phantom3_Advanced);
            // The SDK initiation for Phantom 3 Advanced
            break;
        }
        case 3: {
            result = DJIDrone.initWithType(this.getApplicationContext(), DJIDroneTypeDef.DJIDroneType.DJIDrone_M100);
            // The SDK initiation for Matrice 100.
            break;
        }
        default: {
            break;
        }
    }

    if(!DJIDrone.connectToDrone())
        return false;

    if(DJIDrone.getDjiCamera()!=null){
        boolean bConnectState = DJIDrone.getDjiCamera().getCameraConnectIsOk();
        if(bConnectState){
            result=true;
        }
        else{
            result=false;
        }
    }
    else{
        result=false;
    }

    return result;
}

返回true的时候再刷新GLSurface,并且在销魂的时候注意有没有获取该实例。
能够想到的就是这么多了,如果可以的话最好在开发指南上突出上诉几点,方便开发者开发。多谢各位指导~~


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
评论
上传
你需要登录之后才能回帖    登录 | 注册
楼主  Phantom 3 Professional认证用户 2015-10-17 推荐
VoltWu 发表于 2015-10-17 23:36
AS直接import那个demo一直不成功。。。
那就按照文档一步一步来吧,不过大疆的SDK好像还不太完善
DJI-Shirley  Phantom 3 Professional认证用户 2015-10-12 3#
赞赞赞!
VoltWu   2015-10-17 4#
想问一下AS直接import那个Demo是否可行?
楼主  Phantom 3 Professional认证用户 2015-10-17 5#
VoltWu 发表于 2015-10-17 21:44
想问一下AS直接import那个Demo是否可行?
好像会有SDK版本的问题,照着下载应该没有问题
VoltWu   2015-10-17 6#
YeYe 发表于 2015-10-17 23:20
好像会有SDK版本的问题,照着下载应该没有问题
AS直接import那个demo一直不成功。。。
VoltWu   2015-10-18 8#
YeYe 发表于 2015-10-17 23:39
那就按照文档一步一步来吧,不过大疆的SDK好像还不太完善
按照官方的方法在执行DJIDrone.connectToDrone(); 这个的时候会出现cannot load lib的情况
用了你的方法顺利解决 真的非常非常感谢!!! 想问一下原因是AS本身没有自动导入这两个文件夹吗?
楼主  Phantom 3 Professional认证用户 2015-10-18 9#
VoltWu 发表于 2015-10-18 13:55
按照官方的方法在执行DJIDrone.connectToDrone(); 这个的时候会出现cannot load lib的情况
用了你的方法 ...
没有的,手册说要手动导入,JNI方面不如eclipse方便了
FreemanXu  Phantom 3 Advanced认证用户 2015-10-21 10#
按照楼主的方式解决了 找不到库的问题

skywalkergod.si   2015-11-17 11#
按照这个方法还是有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主  Phantom 3 Professional认证用户 2015-11-17 12#
skywalkergod.si 发表于 2015-11-17 11:07
按照这个方法还是有问题
可以查看一下文件系统下面有没有对应的.so文件
skywalkergod.si   2015-11-17 13#
YeYe 发表于 2015-11-17 13:22
可以查看一下文件系统下面有没有对应的.so文件
在哪个地方?谢谢


楼主  Phantom 3 Professional认证用户 2015-11-17 14#
程序中加载so库 System.loadLibrary("data/data/xxx.xxx.xxx/lib/xx.so")或者 System.loadLibrary("xx"),例如:System.loadLibrary("data/data/com.dtBank.app.service/lib/libjnixcld.so");


应该要root才可以看到
skywalkergod.si   2015-11-18 15#
YeYe 发表于 2015-11-17 16:19
程序中加载so库 System.loadLibrary("data/data/xxx.xxx.xxx/lib/xx.so")或者 System.loadLibrary("xx"), ...
还是这个问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
skywalkergod   2015-11-24 16#
这个问题解决了
取消 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表