sus*_*sal 5 android react-native
我有使用React Native(不是expo)开发的android移动应用程序.我在模拟器(android和IOS)上测试它,它工作正常.然后我把它发布到谷歌播放.我在3台设备上测试了它:1)一加一 - 工作正常2)三星S8 - 崩溃3)三星S7 - 崩溃
我找到了崩溃的原因.三星正在拿起app-arm64-v8a-release.apk而1 + 1正在通过谷歌播放安装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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于 RN 目前仅支持 32 位应用程序,您需要使用最新RN version 0.58.3的
我已经成功使用它并测试了 64 位应用程序,或者您可以删除该应用程序的 64 位版本,然后 Playstore 会自动为用户安装该应用程序的 32 位版本。
对于仅 32 位支持,请替换您的
include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
和
include "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 位问题
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |