Im Angesichts dieses Problems, das scheint nicht imstande zu lösen. Hier ist ein Szenario:Gradle Abhängigkeit für bestimmte Architektur mit ABI Splits
Im Gebäude apk, die Gradle Abhängigkeit verwendet und diese Abhängigkeit ist Architektur spezifische so für apk für x86 brauche ich andere Abhängigkeit und für Arm anders als.
Ich löste es mit Produkt-Varianten:
productFlavors {
dev { ... }
develx86 { ... }
production { ... }
productionx86 { ... }
}
So dann definiert i Abhängigkeit wie folgt aus:
develCompile 'dependency_for_arm'
develx86Compile 'dependency_for_x86'
Das funktioniert gut. Aber vor kurzem musste ich meiner Anwendung eine Verwendung von rendscript hinzufügen. Ich habe es auf diese Weise:
renderscriptTargetApi 22
renderscriptSupportModeEnabled true
Und danach, wenn ich apk auf Google hochgeladen Spielen Sie es sagt, es ist apk mit Arm geeignet ist, x86. Ich weiß nicht, wie das möglich ist. Wie Sie denken können, wird es auf dem Gerät mit unterschiedlicher CPU abstürzen (wenn ich apk für Arm erzeugt habe und Benutzer es auf x86-App ausführen wird, stürzt ab).
So decited i ABI verwenden spaltet:
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
}
Aber jetzt, wenn ich erzeugt apk-Dateien zu sehen, meine Abhängigkeit, die ist Geschmack spezifische nicht in apk und apk enthalten wird abstürzen, wenn ich Abschnitt öffnen welches API von dieser Abhängigkeit verwendet.
Weiß jemand, wie man dieses Problem löst? Oder jemand weiß, warum Google Play sagt, dass apk für beide Architekturen ist, wenn ich rigscript einschließe? (Ohne es funktioniert es richtig, aber ich brauche pigscript).
Vielen Dank für Ihre Zeit. Ich werde jede Hilfe schätzen.
Glück gehabt? Bitte senden Sie die Antwort, wenn Sie es gefunden haben –