You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo React Native应用上架Google Play后启动页与图标显示异常

问题:Expo React Native应用上架Google Play后启动页和图标无法正常显示

我使用Expo React Native开发的应用已通过Google Play Console审核并上架。

截图说明:Google Play商店上架成功的界面

从Play商店下载应用后,发现启动页(splash)和图标无法正常显示,但在Android模拟器中一切正常。

截图说明:设备上显示默认图标和空白启动页的界面

以下是我认为配置无误的app.json代码:

{  
  "expo": {
    "name": "My App",
    "slug": "myapp",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "cover",
      "backgroundColor": "#7022a9"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "assets/images/*"
    ],
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.myapp.app"
    },
    "android": {
      "package": "com.myapp.app",
      "versionCode": 1,
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon.png",
        "backgroundColor": "#4628a8"
      }
    },
    "web": {
      "favicon": "./assets/favicon.png"
    }
  }
}

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp">
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  <uses-permission android:name="android.permission.VIBRATE"/>
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <queries>
    <intent>
      <action android:name="android.intent.action.VIEW"/>
      <category android:name="android.intent.category.BROWSABLE"/>
      <data android:scheme="https"/>
    </intent>
  </queries>
  <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" android:usesCleartextTraffic="true">
    <meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="47.0.0"/>
    <meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
    <meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
    <meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
    <meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@oseyi/myapp"/>
    <meta-data android:name="expo.modules.updates.EXPO_RELEASE_CHANNEL" android:value="default"/>
    <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
    </activity>
    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false"/>
  </application>
</manifest>

解决方案:

1. 修正资源打包路径

当前assetBundlePatterns仅包含assets/images/*,但图标和启动页放在assets/根目录,需添加assets/*确保打包时包含这些资源:

"assetBundlePatterns": [
  "assets/*",
  "assets/images/*"
]

2. 统一包名配置

app.json中Android的package为com.myapp.app,但AndroidManifest.xml根节点的package是com.myapp,包名不匹配会导致资源读取失败,需将AndroidManifest.xml的package改为com.myapp.app。

3. 重新构建正式包

  • 先清理缓存:
    expo r -c
    
  • 使用正式命令构建AAB/APK:
    eas build --platform android
    # 或使用expo build(若未迁移到EAS)
    expo build:android -t app-bundle
    
  • 重新上传构建好的包到Google Play Console,等待更新生效。

4. 检查自适应图标资源

确认adaptive-icon.png尺寸符合要求(至少1024x1024px),背景色配置正确,部分设备会优先加载自适应图标而非普通图标。


内容的提问来源于stack exchange,提问作者delle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:45:47