1.8.1安卓打包jni配置一些疑问

##我在构建发布那里的app abi 选的是armeabi,只选了一个
##但是proj.android-studio/app/jni/Application.mk 这个文件配置的是APP_ABI := armeabi-v7a
##打包后解压看到的so是armeabi的,那Application.mk文件究竟有没有被调用啊???

##顺便问一下,我代码和资源什么都没改的情况,直接点构建,这三个文件的老是在变化,是什么原因?
###jsb_polyfill.jsc,project.jsc,settings.jsc

以你构建的时候选择的app abi为准。
使用 android studio编译,ABI的选择是通过app/build.gradle 进行配置的。

        externalNativeBuild {
            ndkBuild {
                if (!project.hasProperty("PROP_NDK_MODE") || PROP_NDK_MODE.compareTo('none') != 0) {
                    // skip the NDK Build step if PROP_NDK_MODE is none
                    targets 'cocos2djs'
                    arguments 'NDK_TOOLCHAIN_VERSION=4.9'
                    arguments 'APP_PLATFORM=android-'+PROP_TARGET_SDK_VERSION
                    
                    def module_paths = [project.file("${COCOS_X_ROOT}"),
                                        project.file("${COCOS_X_ROOT}/cocos"),
                                        project.file("${COCOS_X_ROOT}/external")]
                    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
                        arguments 'NDK_MODULE_PATH=' + module_paths.join(";")
                    }
                    else {
                        arguments 'NDK_MODULE_PATH=' + module_paths.join(':')
                    }

                    arguments '-j' + Runtime.runtime.availableProcessors()
// 下面这行
                    abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
                }
            }
        }

构建的时候,会修改 gradle.properties 中的 PROP_APP_ABI 。

:slightly_smiling:我在研究看看

那Application.mk里面配置的APP_ABI还有实际作用吗?现在看起来还特定有一个注释在上面;我如果直接使用cocos的编译呢,看起来也是用的也是gradle.properties里面的?

Application.mk 里面的 APP_ABI 应该会被 gradle 中的配置覆盖掉。