请选择 进入手机版 | 继续访问电脑版
正在上传图片(0/1)

调用DJIDrone.connectToDrone()出错

 0
手机看帖 13 4100
新建了一个项目 安装教程一步一步来的
添加了代码激活验证
添加了对Android Open Accessory (AOA)的支持
添加了据连接的飞机的类型来初始化SDK APIs.

然后连接飞机时异常,直接退出,即使没连,也不应该直接退出啊
错误日志如下,看不太懂
08-17 11:53:23.097    2710-2710/com.tax.groundstation E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.UnsatisfiedLinkError: Native method not found: dji.midware.natives.FPVController.native_setIsNeedPackedZ)I
            at dji.midware.natives.FPVController.native_setIsNeedPacked(Native Method)
            at dji.sdk.api.DJIDrone.connectToInspire(Unknown Source)
            at dji.sdk.api.DJIDrone.connectToDrone(Unknown Source)
            at com.tax.groundstation.MainActivity.onCreate(MainActivity.java:87)
            at android.app.Activity.performCreate(Activity.java:5104)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
            at com.qihoo360.mobilesafe.loader.b.callActivityOnCreate(SourceFile:98)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2255)
            at android.app.ActivityThread.access$600(ActivityThread.java:148)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5102)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564)
            at dalvik.system.NativeStart.main(Native Method)


MainActivity.java:87 就是DJIDrone.connectToDrone(); // Connect to Drone

评论
上传
你需要登录之后才能回帖    登录 | 注册
DJI-XCJ   2015-8-17 2#
这个问题显示SDK没有找到jni层所编写的C++代码库。请检查一下您所下载的DJI-SDK-Lib里面的lib文件夹中的armeabi和armeabi-v7a文件夹中是否含有所有的so库。完整的so库应该包含一下的so文件

libDJICam.so
libdjivideo.so
libffmpeg-neon.so
libFlyForbid.so
libFlyForbid-p2v.so
libGroundStation-p2v.so
libGroundStation.so
楼主   2015-8-17 3#
DJI-XCJ 发表于 2015-8-17 12:26
这个问题显示SDK没有找到jni层所编写的C++代码库。请检查一下您所下载的DJI-SDK-Lib里面的lib文件夹中的arm ...
这些库都有
楼主   2015-8-17 4#
DJI-XCJ 发表于 2015-8-17 12:26
这个问题显示SDK没有找到jni层所编写的C++代码库。请检查一下您所下载的DJI-SDK-Lib里面的lib文件夹中的arm ...
我用eclipse重新建个一样的工程,运行没问题,出错这个是用android studio建的工程 难道是我导入LIB时出了问题?
用eclipse导入project 作为库很简单 按照教程来就行了
androidstudio导入库project是不是 先把LIB拷到工程目录下
然后在settings.gradle里加上include ': Lib: DJI-SDK-LIB'
app的build.gradle里加上
dependencies {
    compile fileTree(include:  ['*.jar'], dir:  'libs')
    compile project(': Lib: DJI-SDK-LIB')
}最后rebulid就可以了
DJI-XCJ   2015-8-17 5#
behap 发表于 2015-8-17 13:46
我用eclipse重新建个一样的工程,运行没问题,出错这个是用android studio建的工程 难道是我导入LIB时出 ...
Hi,我们官方给出了一个导入SDK到android studio的教程,希望能够为你的开发带来帮助。

http://dji-dev.gitbooks.io/mobil ... VDemo_Part1_ch.html
楼主   2015-8-17 6#
DJI-XCJ 发表于 2015-8-17 15:30
Hi,我们官方给出了一个导入SDK到android studio的教程,希望能够为你的开发带来帮助。

http://dji-dev.g ...
谢谢,原来这里有android studio 版的 dev.dji.com上没有更新
lianghao4688   2015-8-17 7#
DJI-XCJ 发表于 2015-8-17 15:30
Hi,我们官方给出了一个导入SDK到android studio的教程,希望能够为你的开发带来帮助。

http://dji-dev.g ...
我去,纯中文的啊。我想知道这是从哪个地方进去的。为什么我找的是全英文的?

lianghao4688   2015-8-17 8#
楼主你的问题解决了吗?我遇见相同 的问题。能否告知下。
楼主   2015-8-17 9#
lianghao4688 发表于 2015-8-17 16:26
楼主你的问题解决了吗?我遇见相同 的问题。能否告知下。
我还没试官方给的那个教程 现在在用eclipse 没有出这个问题
lianghao4688   2015-8-17 10#
behap 发表于 2015-8-17 16:33
我还没试官方给的那个教程 现在在用eclipse 没有出这个问题
android studio 会出
yasenhu   2015-8-18 11#
behap 发表于 2015-8-17 13:46
我用eclipse重新建个一样的工程,运行没问题,出错这个是用android studio建的工程 难道是我导入LIB时出 ...
看了下楼主的问题,应该是jniLib没有链接上,app 的build.gradle里面要设置jni的路径,你可以导入DJI-SDK-LIB,也可以将这些lib拷贝到你自己的工程1.比较简单的方法,直接链接到DJI-SDK-LIB的lib,举个例子,如下图所示你自己的 app和DJI-SDK-LIB在同一个目录下,如果要关联DJI-SDK-LIB, 要按如下方法设置build.gradle

工程文件夹

工程文件夹



compileSdkVersion 22
buildToolsVersion '22.0.1'

//加入下面这段,具体的路径根据lib的位置确定

sourceSets {
    main {
        jniLibs.srcDirs = ['..\\DJI-SDK-LIB\\libs']
    }
}




这个方法直接拷贝DJI-SDK-LIB到你的工程即可,但其实不是个非常正确的方法因为这样相当于是把jniLib的路径给改了,以后其他的第三方库文件也必须要放在这里面了


2.另一种正规的方式是在app\src\main 下面新建一个jniLibs,把DJI-SDK-LIB\libs里面的文件全复制进去就可以了,这里就不用专门去设置了,因为默认的jniLib地址就是这个位置,和上一个方法原理上是一样的,好处就是其他的第三方库可以直接放在app的lib里面了
2222.png



这两种方法我再SDK 1.X 和2.0下都测试过有效,接触安卓没多久,讲的有问题的地方请大家指出~
楼主   2015-8-19 12#
yasenhu 发表于 2015-8-18 21:50
看了下楼主的问题,应该是jniLib没有链接上,app 的build.gradle里面要设置jni的路径,你可以导入[/backc ...
用你的方法解决了我的问题,太感谢了,终于又可以用androidstudio开发了,
yasenhu   2015-8-19 13#
behap 发表于 2015-8-19 09:14
用你的方法解决了我的问题,太感谢了,终于又可以用androidstudio开发了,
...
不客气~当时也是在这里折腾了很久,希望帮助其他的开发者少走点弯路
yasenhu   2015-8-19 14#
lianghao4688 发表于 2015-8-17 16:26
楼主你的问题解决了吗?我遇见相同 的问题。能否告知下。
参考下我11楼的回答,希望能帮助到你
收藏 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表