Im affrontare questo problema che sembra im non in grado di risolvere. Ecco lo scenario:Dipendenza gradle per architettura specifica con divisioni ABI
Im apk di costruzione che utilizza dipendenza gradle e questa dipendenza è specifica dell'architettura quindi per apk per x86 ho bisogno di dipendenza diversa e anche per braccio differente.
ho risolto con i sapori di prodotto:
productFlavors {
dev { ... }
develx86 { ... }
production { ... }
productionx86 { ... }
}
Allora ho definito dipendenza come questo:
develCompile 'dependency_for_arm'
develx86Compile 'dependency_for_x86'
Questo funziona bene. Ma di recente ho dovuto aggiungere alla mia applicazione un uso di renderscript. L'ho fatto in questo modo:
renderscriptTargetApi 22
renderscriptSupportModeEnabled true
E dopo questo quando ho caricato apk su Google Play dice che è apk è adatto con il braccio, x86. Non so come sia possibile. Come puoi pensare, si bloccherà sul dispositivo con CPU diverse (se ho generato apk per arm e l'utente lo eseguirà su app x86 si bloccherà).
Così ho decited utilizzare ABI divide:
splits {
abi {
enable true
reset()
include 'armeabi', 'x86'
universalApk false
}
}
//Ensures architecture specific APKs have a higher version code
//(otherwise an x86 build would end up using the arm build, which x86 devices can run)
ext.versionCodes = [armeabi:0, x86:1]
import com.android.build.OutputFile
android.applicationVariants.all { variant ->
// assign different version code for each output
variant.outputs.each { output ->
int abiVersionCode = project.ext.versionCodes.get(output.getFilter(OutputFile.ABI)) ?: 0
output.versionCodeOverride = android.defaultConfig.versionCode + abiVersionCode
}
Ma ora quando vedo file APK generati, la mia dipendenza che è -specific sapore non è incluso nella apk e apk sarà in crash quando ho aperto la sezione che utilizza API da questa dipendenza.
Qualcuno sa come risolvere questo problema? O qualcuno sa perché Google Play dice che l'apk è per entrambe le architetture quando ho incluso il rendering? (Senza di esso funziona correttamente ma ho bisogno di render).
Grazie per il vostro tempo. Apprezzerò qualsiasi aiuto.
po 'di fortuna? Si prega di inviare la risposta se lo avete trovato –