我正在 Play 商店上传一个视频编辑器应用程序,其中包含带有一些本机代码的库。所以我通过将其添加到 gradle 来使其兼容 64 位。
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
添加了还是问题没有解决。当我上传到 Playstore 时,它仍然给出 64 位错误。这是我的等级
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.maam.videoeditor"
minSdkVersion 17
targetSdkVersion 28
versionCode 5
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation "com.android.support:customtabs:28.0.0"
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.writingminds:FFmpegAndroid:0.3.2'
}
我在 gradle 中添加了 64 位行,但在上传 64 位时显示不兼容错误。请指导解决这个问题。
@Osama:首先,请检查您的apk文件是否有64位的库。有很多方法可以做到这一点:
- 使用Android Studio的Analyze Apk功能(更多详情请参考:https://developer.android.com/distribute/best-practices/develop/64-bit https://developer.android.com/distribute/best-practices/develop/64-bit)
- 存档您的 apk 文件并检查该文件夹内部。
如果您的应用程序没有文件夹“arm64-v8a”,则意味着您的应用程序版本尚未达到 64 位。
关于您的要求,如果您希望您的应用程序支持 64 位架构,您还必须将本机库(.so 文件)版本升级到 64 位。
关于您的代码:
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'"
我不建议你添加这个,除非你使用Android Studio的AppBundle新功能。
因为当你使用这个时,将为每个架构创建4个新的apk文件。
如果您上传arm64-v8a架构的文件,错误将会消失,但它会告诉您您的apk支持的设备比以前的版本少,因为它无法支持32位设备。
此问题有 2 种可能的解决方案:
将所有库文件放入您的 apk 文件中,这将使您的应用程序变得更大,但它将使您的应用程序支持所有设备。
将 AppBundle 应用于您的项目。有关此内容的更多详细信息,请查看此链接:https://android.jlelse.eu/a-practical-guide-to-android-app-bundle-for-beginners-7e8d93831828 https://android.jlelse.eu/a-practical-guide-to-android-app-bundle-for-beginners-7e8d93831828
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)