我正在使用Dji-SDK.最近我将SDK从4.2版迁移到4.3.2版.更改libs文件夹中的dji-sdk.aar后,由于清单中的合并问题,我无法构建.构建中的合并清单将按如下方式创建.
...
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<receiver
android:name="dji.logic.receiver.DJIPilotStartupReceiver"
android:exported="true"
android:permission="dji.permission.sdk.wifi" >
<intent-filter>
<action android:name="dji.pilot.STARTUP" />
<action android:name="dji.go3.STARTUP" />
<action android:name="dji.go4.STARTUP" />
</intent-filter>
</receiver>
<application
android:name="com.sample.app.LinkApplication"
...
Run Code Online (Sandbox Code Playgroud)
我知道receiver标签应该贴在application标签上.但是在合并清单中,标记位于标记下uses-permission并显示错误.这是一个Sdk错误还是我的错?错误是
Error:(71) unknown element <receiver> found
Run Code Online (Sandbox Code Playgroud)
这是build.gradle.
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.getkeepsafe.dexcount'
apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.sample.app"
minSdkVersion 21
targetSdkVersion 25 …Run Code Online (Sandbox Code Playgroud) 也许我看上去不够努力,但我昨天花了一段时间用谷歌搜索,发现没有关于黑客入侵DJI Phantom Drone的相关项目,以便创建新的协调应用程序.这是DJI目前用于无人机的协调应用程序.我试图看看是否有办法与Drone通过特定协议进行通信,以便接受一组程序.
任何帮助都会很棒,谢谢.
将手机更新为Android 9,并将sdk版本更新为4.8.1之后,尝试注册sdk时出现问题:
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/params/BasicHttpParams;
at dji.thirdparty.afinal.FinalHttp.<init>(Unknown Source:12)
at com.dji.frame.util.V_AppUtils.b(Unknown Source:9)
at dji.internal.version.b.a(Unknown Source:43)
at dji.internal.version.d.a(Unknown Source:8)
at dji.internal.version.VersionController.a(Unknown Source:12)
at dji.sdk.sdkmanager.DJISDKManager.initParams(Unknown Source:49)
at dji.sdk.sdkmanager.DJISDKManager.initSDKManager(Unknown Source:129)
at dji.sdk.sdkmanager.DJISDKManager.access$1100(Unknown Source:0)
at dji.sdk.sdkmanager.DJISDKManager$5.run(Unknown Source:104)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.params.BasicHttpParams" on path: DexPathList[[zip file "/system/framework/com.android.future.usb.accessory.jar", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/base.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_dependencies_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_resources_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_0_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_1_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_2_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_3_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_4_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_5_apk.apk", zip file "/data/app/com.paragon.defenders-aSWKRXZFLeJtYnRdOEyUKQ==/split_lib_slice_6_apk.apk", zip file …Run Code Online (Sandbox Code Playgroud) 我在过去几天将DJI SDK从4.3.2更新到4.4.1.我正试图让它工作,但它在某种程度上无法识别我何时连接无人机的遥控器.使用的硬件/软件:
智能手机:谷歌Pixel XL
智能手机操作系统: Android 8.1.0
无人机: DJI Phantom 4 Pro
DJI SDK: 4.4.1
请不要因为其他依赖关系而我需要使用API级别> = 26不能低于那个.
的build.gradle
apply plugin: 'com.android.application'
repositories {
maven { url 'https://maven.google.com' }
}
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.test.droneapp"
minSdkVersion 19
targetSdkVersion 26
versionCode 9
versionName "1.0"
//Enabling multidex support
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
useLibrary 'org.apache.http.legacy'
ndk {
abiFilters 'armeabi-v7a', 'x86', 'arm64-v8a'
}
}
lintOptions {
disable 'MissingTranslation'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用DJI Mavic 2的视频提要并通过机器学习模型运行以识别对象的应用程序。
我使用此示例DJI项目设法使我的应用预览了无人机的提要,但是尝试将视频数据转换为Vision框架可以使用的格式时遇到了很多麻烦。
我使用Apple的这个示例作为创建模型的指南(正在运行!),但看起来我需要创建一个VNImageRequestHandler对象,该对象cvPixelBuffer的类型CMSampleBuffer必须是type 才能使用Vision。
知道如何进行转换吗?有一个更好的方法吗?
class DJICameraViewController: UIViewController, DJIVideoFeedListener, DJISDKManagerDelegate, DJICameraDelegate, VideoFrameProcessor {
// ...
func videoFeed(_ videoFeed: DJIVideoFeed, didUpdateVideoData rawData: Data) {
let videoData = rawData as NSData
let videoBuffer = UnsafeMutablePointer<UInt8>.allocate(capacity: videoData.length)
videoData.getBytes(videoBuffer, length: videoData.length)
DJIVideoPreviewer.instance().push(videoBuffer, length: Int32(videoData.length))
}
// MARK: VideoFrameProcessor Protocol Implementation
func videoProcessorEnabled() -> Bool {
// This is never called
return true
}
func videoProcessFrame(_ frame: UnsafeMutablePointer<VideoFrameYUV>!) …Run Code Online (Sandbox Code Playgroud) 我需要一种使用我正在开发的 iOS 应用程序从 DJI 用户帐户下载飞行日志的方法,我注意到其他几个应用程序/网站允许用户登录其 DJI 帐户并从 DJI 服务器同步其飞行日志,但是我找不到任何参考资料或 API 来说明他们是如何做到这一点的。
我尝试搜索 DJI 开发者门户上的所有文档,但没有任何相关内容。任何人都知道这是如何完成的,或者知道任何 api 可以做到这一点?
执行此操作的网站/应用程序的示例包括:
无人机日志: https://blog.dronelogbook.com/?p =191
Kittyhawk https://kittyhawk.io/dji-sync
AirData: https: //app.airdata.com/sync-app-ios
我在尝试模仿ImportSDKDemo项目时遇到问题。
我正在关注本教程,但是缺少一些信息,例如关于MainActivity.class。
当我尝试运行仿真时,出现以下错误:
java.lang.UnsatisfiedLinkError:未找到byte []的实现。
这是整个日志:
09-14 05:04:29.389 3080-3080/? I/m.importsdkdem: Not late-enabling -Xcheck:jni (already on)
09-14 05:04:29.499 3080-3080/? W/m.importsdkdem: Unexpected CPU variant for X86 using defaults: x86
09-14 05:04:30.082 3080-3080/dji.com.importsdkdemo E/sdk: install begin
09-14 05:04:30.086 3080-3080/dji.com.importsdkdemo V/sdk: DexInstall beging
installSecondarDexs
09-14 05:04:30.086 3080-3080/dji.com.importsdkdemo W/m.importsdkdem: Accessing hidden field Ldalvik/system/BaseDexClassLoader;->pathList:Ldalvik/system/DexPathList; (light greylist, reflection)
Accessing hidden method Ldalvik/system/DexPathList;->makeInMemoryDexElements([Ljava/nio/ByteBuffer;Ljava/util/List;)[Ldalvik/system/DexPathList$Element; (light greylist, JNI)
09-14 05:04:30.320 3080-3080/dji.com.importsdkdemo W/m.importsdkdem: Accessing hidden field Ldalvik/system/DexPathList;->dexElements:[Ldalvik/system/DexPathList$Element; (light greylist, reflection)
09-14 05:04:30.320 3080-3080/dji.com.importsdkdemo V/sdk: DexInstall …Run Code Online (Sandbox Code Playgroud) 更改为SDK 4.8后(所有其他文件保持不变),如果启用了minify,则构建将失败。错误是字符串索引溢出。
是否有针对4.8的更新的proguard-rules文件,其中考虑了新的/更改的类?
我正在为我的大学项目写一个无人机应用程序.我的项目是关于群体无人机.所以我使用DJI SDK易于使用,但无法弄清楚DJI SDK是否允许通过同一个应用程序连接和控制多个DJI无人机?
谢谢
我正在尝试 DJI SDK,并正在按照本教程了解如何将 SDK 集成到我创建的 Android Studio 项目中。我已将所有内容复制到文件名,唯一的区别是我在MainActivity.java.
当我尝试构建项目时出现以下错误:
> Task :app:processDebugMainManifest FAILED
[path to projects]\AndroidStudioProjects\ImportSDKDemo\app\src\main\AndroidManifest.xml Error:
android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed : android:exported needs to be …Run Code Online (Sandbox Code Playgroud) 我下载了最新版本的DJI-SDK示例代码。
由于某些原因,我在运行应用程序(在移动设备中)时收到以下注释“SDK 注册失败。请检查捆绑包 ID...”
应用程序密钥已创建并放置到 AndroidManifest.xml 中,并且网络可用。应用程序名称应该在清单文件中还是可以是任何名称?
欢迎所有建议。
我刚刚在我的项目中将DJI-UXSDK-iOS上传到最新版本(4.7),我收到了一个编译错误:
dyld: Library not loaded: @rpath/FFmpeg.framework/FFmpeg
Referenced from: /Users/nachocarnicero/Library/Developer/CoreSimulator/Devices/6107CAFD-8BA7-44D6-A059-A971A22BF695/data/Containers/Bundle/Application/44688981-49A3-4F6F-91E2-15E5381BBBB8/perceptionios.app/Frameworks/DJIUXSDK.framework/DJIUXSDK
Reason: image not found
所以基本上它没有找到FFmpeg库,我相信这与现在根据DJI Mobile SDK 4.7的发行说明现在视频反馈作为小部件包含的事实有关:
用DJIWidget替换VideoPreviewer以获得硬件编码支持
因此以前FFmpeg库包含在VideoPreviewer框架中,但现在我想它必须以其他方式包含,有没有人设法用这个新版本成功编译项目?
谢谢,
纳乔
我想提供一种优美的方式来完成飞机绑定,只需在我的应用程序中点击一个按钮即可自动将用户重定向到DJI GO。是否有一个自定义URL方案来实现这一目标?