0

我几乎在 Android Studio 中完成了一个包含 OpenCV 库的项目,我通过在 app/src/main 下创建一个新文件夹“jniLibs”来导入该库。现在有一个大问题,.apk 文件大小为 105 MB。对 App 模块使用 shrinkResources 和 minifyEnabled,尺寸降至 95 MB。也为 OpenCV 模块激活 shrinkResources 和 minifyEnabled,编译时返回错误。Gradle 找不到库的包!

这是我的 build.gradle(App)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'

defaultConfig {
    applicationId 'it.project'
    minSdkVersion 19
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
}

buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

sourceSets.main {
    jniLibs.srcDir 'src/main/jniLibs'
    jni.srcDirs = []
}
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:26.0.2'
    compile 'com.android.support:design:26.0.2'
    compile 'com.google.code.gson:gson:2.7'

    compile project(':openCVLibrary330')
}

这是 build.gradle(library)

apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
    }
}

我怎样才能激活 gradle 来清理库代码呢?

在这种 gradle 构建的情况下,我得到一个 95 MB 的 apk。但是也为库激活 minify 我得到了错误。无法解析 org.opencv.core ecc ecc

项目结构

4

1 回答 1

0

您不应该为项目 OpenCV 本身启用缩小,因为在运行 proguard 时,它不知道您将在应用程序项目中使用什么。项目应用程序中的缩小也应该为项目 OpenCV 工作。
此外,请考虑使用多个 APK来减小您的 apk 的大小。

于 2017-10-22T20:53:42.433 回答