android - APK 打包时重复文件,libpjsua2.so

标签 android android-ndk android-studio pjsip

将项目从 Eclipse 迁移到 Android studio 时,在打包 APK app-debug-unaligned.apk 期间出现此错误 Duplicate files:

:app:compileDebugJava UP-TO-DATE
:app:preDexDebug UP-TO-DATE
:app:dexDebug UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:validateDebugSigning
:app:packageDebug
Error:duplicate files during packaging of APK C:\Users\aaa\AndroidStudioProjects\Pjsua2\app\build\outputs\apk\app-debug-unaligned.apk
    Path in archive: lib/armeabi/libpjsua2.so
    Origin 1: C:\Users\aaa\AndroidStudioProjects\Pjsua2\app\src\main\jniLibs\armeabi\libpjsua2.so
    Origin 2: C:\Users\aaa\AndroidStudioProjects\Pjsua2\app\build\intermediates\ndk\debug\lib\armeabi\libpjsua2.so
You can ignore those files in your build.gradle:
    android {
      packagingOptions {
        exclude 'lib/armeabi/libpjsua2.so'
      }
    }
Error:Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK lib/armeabi/libpjsua2.so
    File 1: C:\Users\aaa\AndroidStudioProjects\Pjsua2\app\src\main\jniLibs\armeabi\libpjsua2.so
    File 2: C:\Users\aaa\AndroidStudioProjects\Pjsua2\app\src\main\jniLibs\armeabi\libpjsua2.so
Information:BUILD FAILED

我尝试更改 build.gradle,但任何操作都会出现相同的错误。 我的构建.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 15
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "org.pjsip.pjsua2.app"
        minSdkVersion 11
        targetSdkVersion 15

        ndk {
            moduleName "libpjsua2"
        }
    }

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

请帮我解决。

最佳答案

我从你的路径中看到“jniLibs”在“src/main”中。这意味着在编译源代码时会包含 .so 文件。

将“armeabi\libpjsua2.so”文件夹移出到“Pjsua2\app\”文件夹内名为“libs”的文件夹中(即将其移出到基础应用程序文件夹)。

您的 .so 文件将位于: Pjsua2\app\libs\armeabi\libpjsua2.so

然后在 gradle.build 的“android”闭包中添加以下内容:

android {
...
    sourceSets.main {
        jniLibs.srcDir 'libs'
    }
}

这可能会解决重复计算的问题(对我有用)。

关于android - APK 打包时重复文件,libpjsua2.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454308/

相关文章:

android - 使用 Python 进行 Unicode URL 编码/解码

android - RecyclerView 中的 NetworkImageView 因回收而导致显示问题

android-studio - (安卓工作室 2.1) "SDK does not contain any platforms. error"

java - 无法为 1572864KB 对象堆保留足够的空间 Android Studio

android - NDK 无法在 NDK_MODULE_PATH 中找到我的模块 - android-ndk-profiler

android - 在 Android 上使用 ffmpeg 2.1.1 时出现 undefined reference

android - 如何在 Android Studio 2.2 Preview 1 中正确使用 NDK-Build

java - 如何重新着色 GridView 项目

java - 没有应用程序可以执行此操作 android studio

android - 从 Android 应用程序向流行的社交网络分享内容时,如何通过 [我的应用程序] 添加共享?