android - Google Play 64 位要求问题

标签 android android-studio kotlin google-play android-app-bundle

我正在 Google Play 商店上传 android 应用程序包,但在审核时遇到 64 位要求错误。我的应用程序包完全基于 Java/Kotlin,具有 native 支持,因为某些第三方依赖于它。

我已经包含了对所有架构的支持 armeabi-v7a , arm64-v8a , x86 , x86_64在 gradle 文件中还为 abi 启用了拆分。

我添加的 Gradle 配置:

apply plugin: "com.android.application"
apply plugin: "io.fabric"
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.firebase.firebase-perf'

apply from: '../jacoco.gradle'

def appCenterKey = "\"XXXX\""

android {
signingConfigs {
    release {
        keyAlias 'XXXX'
        keyPassword 'XXXX'
        storeFile file('../buildconfig/XXXXX.jks')
        storePassword 'XXXXX'
    }
}
compileSdkVersion 28
defaultConfig {
    applicationId "com.XXXXX.XXXX"
    minSdkVersion 23
    targetSdkVersion 28
    versionCode 504
    versionName "2.0.0"
    multiDexEnabled true
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    ndk {
        abiFilters "armeabi-v7a", "arm64-v8a","x86","x86_64"
    }
}


buildTypes {
    all {
        buildConfigField "String", XXXXX,appCenterKey
    }
    debug {
        applicationIdSuffix '.dev'
        versionNameSuffix '-DEV'
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

testOptions {
    execution 'ANDROIDX_TEST_ORCHESTRATOR'
    animationsDisabled true

    unitTests {
        includeAndroidResources = true
        returnDefaultValues = true
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

bundle {
    language {
        enableSplit = true
    }
    density {
        enableSplit = true
    }
    abi {
        enableSplit = true
    }
}
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

testImplementation "junit:junit:4.12"
androidTestImplementation 'androidx.test:runner:1.2.0'

// Mockito
def mockitoVersion = "2.17.0"
testImplementation "org.mockito:mockito-core:$mockitoVersion"
androidTestImplementation "org.mockito:mockito-android:$mockitoVersion"

// App Center dependencies
def appCenterVersion = "1.4.0"
implementation "com.microsoft.appcenter:appcenter-analytics:$appCenterVersion"
implementation "com.microsoft.appcenter:appcenter-crashes:$appCenterVersion"

// GSON (https://github.com/google/gson)
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'org.danilopianini:gson-extras:0.2.1'

// Picasso (http://square.github.io/picasso/)
implementation "com.squareup.picasso:picasso:2.71828"
implementation 'androidx.exifinterface:exifinterface:1.0.0'

// Google Play Services
def googlePlayVersion = "17.0.0"
implementation "com.google.android.gms:play-services-maps:$googlePlayVersion"
implementation "com.google.android.gms:play-services-location:$googlePlayVersion"

// AWS (Cognito, API Gateway, etc.)
def awsVersion = "2.14.2"
implementation("com.amazonaws:aws-android-sdk-auth-userpools:$awsVersion@aar") {
    transitive = true
}
implementation("com.amazonaws:aws-android-sdk-mobile-client:$awsVersion@aar") {
    transitive = true
}
implementation "com.amazonaws:aws-android-sdk-apigateway-core:$awsVersion"
implementation "com.amazonaws:aws-android-sdk-kinesis:$awsVersion"

// For amazon web hosted UI authorization
implementation("com.amazonaws:aws-android-sdk-cognitoauth:$awsVersion@aar") {
    transitive = true
}

// Adapter Delegates (https://github.com/sockeqwe/AdapterDelegates)
implementation 'com.hannesdorfmann:adapterdelegates3:3.0.1'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'

//Dagger 2
implementation 'com.google.dagger:dagger:2.16'
kapt "com.google.dagger:dagger-compiler:2.16"

//Permissions
def permissionsVersion = "3.3.1"
implementation("com.github.hotchemi:permissionsdispatcher:$permissionsVersion") {
    exclude module: "support-v13"
}
kapt "com.github.hotchemi:permissionsdispatcher-processor:3.3.1"

// Braintree - (Suppressing Lint warning as the Braintree docs ask for dynamic version)

//noinspection GradleDynamicVersion
implementation 'com.braintreepayments.api:drop-in:3.7.0'

//Circular ImageView
implementation 'de.hdodenhof:circleimageview:2.2.0'

//Calligraphy
implementation 'io.github.inflationx:calligraphy3:3.0.0'
implementation 'io.github.inflationx:viewpump:1.0.0'

// Animated Gif
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.16'

//Image Compressor
implementation 'id.zelory:compressor:2.1.0'

// Firebase
implementation "com.google.firebase:firebase-core:17.0.1"
implementation "com.google.firebase:firebase-perf:18.0.1"
implementation 'com.google.firebase:firebase-messaging:19.0.1'

implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.0.0-RC2'

implementation 'com.airbnb.android:lottie:2.7.0'

// Google vision API for Face Detection
implementation 'com.google.android.gms:play-services-vision:18.0.0'

// Google wallet for Google Pay
implementation 'com.google.android.gms:play-services-wallet:17.0.0'

// TODO Enable below line for this error for compile time error : Dagger2 cannot access nullable. javax.annotation.Nullable not found
// implementation 'com.google.code.findbugs:jsr305:3.0.2'

// QR and Barcode
implementation 'com.google.zxing:core:3.3.3'


//Multidex
implementation 'com.android.support:multidex:1.0.3'
}
repositories {
mavenCentral()
}

在创建签名的应用程序包时,在分析器中它会显示其中的所有 native 支持库(在 lib 文件夹中的 armeabi-v7aarm64-v8ax86x86_64 下的 .so 文件)。

但是,当我将此 bundle 上传到 Playstore 时,它​​会成功上传但仅支持 2 个平台(32 位),即 armeabi-v7a , x86。相反,它应该显示对所有 64 位和 32 位平台的支持。

单击查看它会显示我的错误消息

The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code.



即使我为 32/64 位 native 代码添加了依赖项。

最佳答案

您可以验证添加此代码
defaultConfig { .... renderscriptTargetApi 18 renderscriptSupportModeEnabled true ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', "armeabi" }

关于android - Google Play 64 位要求问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471011/

相关文章:

android - 操作栏 - 隐藏除搜索字段之外的所有菜单项

android-studio - 为什么 Android Studio (3.4) 创建的 .gitignore 不排除所有 `/.idea` ?

android - 错误包 `com.google.android.gms...` 不存在

android - 将 android 项目从 eclipse 迁移到 android studio 时出现 "Gradle location is incorrect"

java - 如何创建像 Clipboard Pro App 这样的 float 窗口?

gradle - 如何将 ext.* 变量放入 build.gradle.kts 中的插件 block 中

android - ViewPager 中的 onTouchListener

Android - 屏幕锁定后检测应用程序恢复

Android 和 Google-app-engine createuploadURL - 如何传递附加参数(即电子邮件地址)

Java Integer.MAX_VALUE 与 Kotlin Int.MAX_VALUE