当前位置:   article > 正文

android studio 导入模块SDK 以及该模块中继承application的类与原工程继承application的类存在冲突 解决方法_安卓extends application未启动

安卓extends application未启动


新导入的工程可能存在路径问题,不太懂,后续明白会补充。总之需要先Rebuild Project然后可正常运行。
在这里插入图片描述

导入某修改后的海康视频SDK(老师给的),并修改相关文件

  1. 选择准备好的模块:File-New-import Module导入模块
    在这里插入图片描述
    在这里插入图片描述
    给新模块改新名字,本例用video
    在这里插入图片描述
    引入依赖关系:File-Project Structure-app-Dependencies-Module dependency
    在这里插入图片描述
    在这里插入图片描述
    选择video,然后点击两个OK在这里插入图片描述

  2. 分别找到APP和video模块的 清单文件AndroidManifest.xml和 build.gradle文件
    准备修改这四个文件
    在这里插入图片描述

  3. 修改本工程APP的AndroidManifest.xml
    添加语句xmlns:tools="http://schemas.android.com/tools"在这里插入图片描述
    添加语句tools:replace="android:icon,android:theme,android:name" 也可能添加tools:replace=“android:icon,android:theme”
    具体要看和video demo重复的地方
    在这里插入图片描述

  4. 修改video模块的AndroidManifest.xml
    注释代码<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />现在的版本已经不支持把它写在清单文件,应写在build.gradle中,本例不用改动其他只需注释该部分
    在这里插入图片描述

  5. 修改本工程APP的build.gradle文件
    在dependencies中加入模块的依赖关系compile project(':video')
    在这里插入图片描述

  6. 修改video模块的build.gradle文件

注释apply plugin: 'com.android.application'
更正为apply plugin: 'com.android.library'
注释applicationId "com.hikvision.sdk.demo"
原代码:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {``
        applicationId "com.hikvision.sdk.demo"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    //  compile project(':ivms_8700_sdk_library')
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

更正后:

//apply plugin: 'com.android.application'
apply plugin: 'com.android.library'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        //applicationId "com.hikvision.sdk.demo"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    //  compile project(':ivms_8700_sdk_library')
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

问题1:错误:需要常量表达式

Compilation failed; see the compiler error output for details.
在这里插入图片描述
在这里插入图片描述
**解决方法:**点击错误,进入代码,按Alt + Enter选择Replace ‘switch ’with 'if解决
在这里插入图片描述

问题2:video模块中的继承application的类与主工程中继承application的类发生冲突

此时程序只调用主APP的继承application的类,而video中的没有调用,导致视频SDK没有初始化

  1. 找不到包

在这里插入图片描述
**解决方法:**让主程序的类不再继承application,去继承video模块中的继承了application的类,清单文件不变,还是先调用主程序的类,这样video模块中的类也会自动执行
简言之:原本applicationOne和applicationTwo 继承application,现在applicationOne继承applicationTwo,applicationTwo还是继承application,主清单中不变还是调applicationOne

  1. 改正后出现了找不到.so文件的问题
    在这里插入图片描述
    **解决方法:**把video模块中的三个.so文件复制到主程序libs中
    D:\Android\newnewnew\HTDJC3.41\video\src\main\jniLibs\armeabi-v7a
    D:\Android\newnewnew\HTDJC3.41\app\libs\x86
    rebuild工程 重新运行
    在这里插入图片描述
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/962505
推荐阅读
相关标签
  

闽ICP备14008679号