के साथ बाहरीनेटिव बिल्डिंग को सक्षम करना मैंने ndk-build
से cmake
बिल्ड सिस्टम पर स्विच किया है। लेकिन काम करने के लिए एपीके विभाजन समारोह नहीं मिल सकता है। foo.bar-armeabi-v7a-release-1.5.1.apk
-एबीआई स्प्लिट
यहाँ मेरी एप्लिकेशन build.gradle
फ़ाइल
निर्माण का परिणाम केवल एक फ़ाइल है।
मैं 86 एमुलेटर के लिए एक ऐप का निर्माण कर रहा हूँ, तो परिणाम foo.bar-x86-release-1.5.1.apk
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
android {
compileOptions.encoding = 'ISO-8859-1'
compileSdkVersion CompiledSdkVersion
buildToolsVersion BuildToolsVersion
defaultConfig {
applicationId "foo.bar"
minSdkVersion MinSdkVersion
targetSdkVersion TargetSdkVersion
versionCode VersionCode
versionName VersionName
vectorDrawables.useSupportLibrary = true
externalNativeBuild {
cmake {
cppFlags "-fexceptions", "-std=c++11"
}
}
ndk {
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
}
signingConfigs {
release {
storeFile file("..\\release.keystore")
}
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
splits {
abi {
enable true
reset()
include "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"
universalApk true
}
}
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.versionCodeOverride = project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.FilterType.ABI), 0) * 1000000 + android.defaultConfig.versionCode
output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-${variant.versionName}.apk"))
}
}
externalNativeBuild {
cmake {
path 'src/main/jni/CMakeLists.txt'
}
}
}
crashlytics {
enableNdk false // too many reports for third-party modules
androidNdkOut '.externalNativeBuild/cmake/release'
androidNdkLibsOut 'src/main/libs'
}
dependencies {
compile project(':common-sources')
compile project(':chess-board-library')
compile project(':number-picker')
compile files('libs/kxml2-2.3.0.jar')
compile files('libs/StartADLib-1.0.1.jar')
compile Dependencies.appCompat
compile Dependencies.cardView
compile Dependencies.firebaseAds
compile Dependencies.googleAnalytics
compile Dependencies.googlePlus
compile Dependencies.googleGames
compile(Dependencies.crashlytics) {
transitive = true
}
compile(Dependencies.crashlyticsNdk) {
transitive = true
}
}
apply plugin: 'com.google.gms.google-services'
पी.एस. है यदि आप त्रुटि को पुन: उत्पन्न कर सकते हैं, तो कृपया my issue in Google's bug tracker पर वोट दें, लेकिन समाधान नहीं मिल रहा है।
getFilter एक तर्क लेता है, यह सच है। कोड 'output.getFilter (com.android.build.OutputFile.ABI) कोड में केवल एक ही तर्क है। मैंने 'com.android.build.OutputFile.ABI' को 'com.android.build.OutputFile.FilterType.ABI' में बदलने की कोशिश की, लेकिन इससे मदद नहीं मिलती है। –
क्षमा करें, आप सही हैं, मैंने कोड को गलत तरीके से पढ़ा है। आप यह देखने के लिए कोड को सरल बनाने का प्रयास कर सकते हैं कि इससे कोई फर्क पड़ता है या नहीं। – Hod
मैंने प्रयोग करने की कोशिश की, लेकिन बिना किसी किस्मत के। वह कोड निश्चित रूप से बाहरी बिल्डिंग में अपग्रेड करने से पहले काम करता था, इसलिए मुझे विश्वास है। –