gpt4 book ai didi

android - React Native android 应用程序在一部手机上工作但在另一部手机上崩溃(通过谷歌游戏商店生产)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:15 26 4
gpt4 key购买 nike

我有使用 React Native(不是 expo)开发的 android 移动应用程序。我在模拟器(android 和 IOS)上对其进行了测试,它运行良好。然后我将它发布到谷歌播放。我在 3 台设备上进行了测试:1)一加一 - 工作正常2) 三星 S8 - 崩溃3) 三星 S7 - 崩溃

我找到了崩溃的原因。 Samsung 正在获取 app-arm64-v8a-release.apk,而 1+1 正在通过 google play 安装 app-armeabi-v7a-release.apk。如果我在三星手机上手动下载 app-armeabi-v7a-release.apk(而不是通过谷歌播放),那么该应用程序可以正常工作。一些问题:

1) 三星是否应该下载它正在下载的内容 (app-arm64-v8a-release.apk)?2)如果是(我认为是正确的)那么可能是什么问题?我如何调试生产应用。

注意:如果我在 1+1 和三星手机上手动安装通用 apk,应用程序会崩溃。

这是我的 gradele.build 文件

def enableSeparateBuildPerCPUArchitecture = true

def enableProguardInReleaseBuilds = true

android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

defaultConfig {
applicationId "com.bakbakapp.bakbak"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 3
versionName "3.0"
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
splits {
abi {
def isReleaseBuild = false

gradle.startParameter.taskNames.find {
if (it ==~ /:app:assemble.*Release/) {
isReleaseBuild = true
return true // break
}
return false // continue
}
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk true // If true, also generate a universal APK
include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
shrinkResources true
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// Map for the version code that gives each ABI a value.
def abiCodes = ['x86':1, 'x86_64':2, 'armeabi-v7a':3, 'arm64-v8a':4]

// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) {
output.versionCodeOverride = abiCodes.get(abi, 0) * 1048576 + defaultConfig.versionCode

}
}
}
}

最佳答案

由于 RN 目前仅支持 32 位应用程序,您需要使用最新的 RN 版本 0.58.3 作为

我已成功使用它并针对 64 位应用程序对其进行了测试,或者您可以删除该应用程序的 64 位版本,然后 playstore 会自动为用户安装该应用程序的 32 位版本。

只有 32 位支持替换你的

包含“x86”、“x86_64”、“armeabi-v7a”、“arm64-v8a”

包含“x86”“armeabi-v7a”

和类似的

def abiCodes = ['x86':1, 'x86_64':2, 'armeabi-v7a':3, 'arm64-v8a':4]

def abiCodes = ['x86':1, 'armeabi-v7a':2]

您可以跟踪 RN 64 位问题 here

关于android - React Native android 应用程序在一部手机上工作但在另一部手机上崩溃(通过谷歌游戏商店生产),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54526094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com