Android签名配置和分裂abi冲突

meh*_*dok 5 java-native-interface android android-gradle-plugin android-signing

我有一个使用jni库的项目.为此,我在我的gradle文件中有这个设置,根据他们的平台拆分apks(并且工作正常):

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.properties.put(signingConfig, signingConfigs.config)
            output.versionCodeOverride =
                    versionCodes.get(output.getFilter(
                            com.android.build.OutputFile.ABI), 0) * 10000000 + android.defaultConfig.versionCode
        }
    }

splits {
        abi {
            enable true
            reset()
            include "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"

            universalApk true
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我想设置一个签名配置,这样我就可以release直接从android studio 运行Build变量,所以我把它添加到我的gradle文件中:

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    signingConfigs {
            config {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile rootProject.file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }

    buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
                buildConfigField "boolean", "MOCK_MODE", "false"
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.config
            }
            debug {
                minifyEnabled false
                shrinkResources false
                buildConfigField "boolean", "MOCK_MODE", "true"
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

在此之后,如果我运行发布版本,我将得到错误 Error:path may not be null or empty string. path='null'

请注意,如果我通过设置abi {enable false}sigining将放置和应用程序运行它禁用拆分,所以我认为拆分apks和签署配置之间存在一些复杂性.

任何帮助,将不胜感激.

tnx提前.

小智 0

将android studio从3.12版本更新到3.14,bug消失了。