如何发布64位捆绑应用到谷歌商店与32位.so文件



我用Android Studio 2021开发了一个Android应用程序,并使用了一些。so文件。当我调试应用程序时,它可以成功地使用这个Gradle配置:

android {
compileSdk 30
defaultConfig {
applicationId "com.sample"
minSdk 21
targetSdk 30
versionCode 6
versionName "2022"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jnilibs']
}
}
buildTypes {
release {
debuggable false
minifyEnabled false
shrinkResources false
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
proguardFile 'proguard-android.txt'
ndk {
abiFilters "armeabi-v7a","x86_64", "x86"
}
}
debug {
ndk {
abiFilters  "armeabi-v7a","x86_64", "x86"
}
}
}

然后我决定在谷歌商店发布应用程序,商店返回这个错误:

此版本不符合Google Play 64位要求。

Then I do

  1. 添加"arm64-v8a"到abiFilters行在释放模式结束:

    abiFilters "armeabi-v7a","x86_64", "x86_64">

  2. 在jniLibs文件夹中创建新文件夹

  3. 将.so文件从armmeabi -v7a文件夹复制到arm64-v8a文件夹

存储错误消失了,但是出现了一个新的问题:当我生成APK文件时,应用程序崩溃,出现以下错误

没有找到int com.xxx .xxx在com.wifi的实现。xxxx(本地方法)

有谁能告诉我该怎么办吗?

你打算以。apk或。aab发布到PlayStore吗?

我已经使用.apk通过以下步骤使其工作:

  • 反编译的apk
  • 在lib文件夹中创建一个名为arm64-v8a的新文件夹
  • 将armeabi-v7a文件夹复制到arm64-v8a文件夹中(是的,这种方式对我有效)
  • 编译

在我的例子中不需要这些行:ndk {abiFilters "armeabi-v7a";x86_64";}

你可以通过下面的链接获得更详细的信息

无论如何,那些天PlayStore需要你上传一个。aab,所以我目前正在寻找一种方法,使它与。aab工作