System目录下APK无法加载DJI V5 SDK类

Completed

Comments

12 comments

  • DJI Developer Support
    您的应用在application初始化的时候有调用com.secneo.sdk.Helper.install(this)吗?
    0
    Comment actions Permalink
  • zxd

    有,不然肯定不能加载的

    0
    Comment actions Permalink
  • zxd

    我们的应用是安装在system/xxx/xxx目录下, V4 SDK 的时候是正常的没问题,V5 SDK就出现上述加载失败的问题了.  都有调用com.secneo.sdk.Helper.install(this)

    0
    Comment actions Permalink
  • DJI Developer Support
    我理解您的意思是将软件安装在system/app出现了问题,但data路径下就是可以正常使用的,是这样吗? 我会与研发确认一下这部分是否存在影响。
    0
    Comment actions Permalink
  • zxd

    是的,谢谢~

    0
    Comment actions Permalink
  • DJI Developer Support
    和研发反馈了这个问题,我们没有在system路径进行过测试,想询问一些信息来帮助分析。 1.你使用的设备是什么呢? 2.您调用com.secneo.sdk.Helper.install(this)的时机是什么呢?是与sample一致的吗?即在application里直接调用,不是封装在其他lib里间接调用。
    0
    Comment actions Permalink
  • zxd

    设备是三星 S23

    public class XXXAPP extends Application {

    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        com.secneo.sdk.Helper.install(this);
    }

    是在这里调用的,与sample一致

    0
    Comment actions Permalink
  • DJI Developer Support
    可以告诉我们您需要在system路径下安装的目的吗? 您之前反馈的信息已经转交给研发了。
    0
    Comment actions Permalink
  • zxd

    我们是手机厂商,app都是预装在system目录下的

    0
    Comment actions Permalink
  • DJI Developer Support
    BackGroundWatcherInstaller是一个contentProvider,因为sdk的代码是加固的,因此需要提前调用com.secneo.sdk.Helper.install(this)去进行解码,这样才可以正确使用sdk,一般都是没有调用com.secneo.sdk.Helper.install(this)才会遇到这个报错信息。安装在system路径下的应用与普通应用初始化的逻辑是不一样的吗?
    0
    Comment actions Permalink
  • zxd

    apk路径不一样,是不是SDK代码中找这个加固的dex的路径不对?

    V4 SDK APP安装在system/xxx/xxx/sdkapp.apk这个目录是可以的,能否排查一下V4和V5的不同之处?

    0
    Comment actions Permalink
  • lwj

    用v5的msdk集成到空白项目中也遇到这个错。代码走

    com.secneo.sdk.Helper.install(this)

    后app就会闪退。

    尝试各种方法终于解决:

    1、build.gradle(:app)文件的android 的defaultConfig底下要加

    ndk {
    abiFilters 'arm64-v8a'
    }

     2、build.gradle(:app)文件的android底下要加

    packagingOptions {
    // 因为mrtc库内部使用了NDK的c++_shared的编译参数
    // 与其他库重复引用了,因此选其中一个即可
    pickFirst 'lib/arm64-v8a/libc++_shared.so'
    pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    }

     3、依赖

    dji-sdk-v5-aircraft-provided是compileOnly
    dji-sdk-v5-aircraft是implementation
    dji-sdk-v5-networkImp是runtimeOnly

    这个地方很容易报错

    0
    Comment actions Permalink

Please sign in to leave a comment.