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

UnityPlayerActivity无法加载Cardboard问题咨询

Fix for Cardboard Not Loading When Unity AAR is Integrated into Android App

Hey there, I’ve run into almost this exact issue before! When packaging a Unity project with Google VR/Cardboard into an AAR and integrating it into a main Android app, the split-screen Cardboard view just vanishes out of nowhere. After digging around for a while, here are the key fixes that got it working for me:

1. Double-Check AndroidManifest Merging

The most common culprit is missing VR-related configuration in your main app’s merged AndroidManifest. Unity’s exported AAR might not have its Manifest settings properly merged in, so you’ll need to ensure these are present:

  • Required Permissions: Add these to your main Manifest if they aren’t already there:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.NFC" /> <!-- Only if using Cardboard NFC pairing -->
    
  • UnityPlayerActivity Configuration: Make sure the Unity activity has the correct theme and attributes:
    <activity
        android:name="com.unity3d.player.UnityPlayerActivity"
        android:theme="@style/UnityThemeSelector"
        android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density"
        android:hardwareAccelerated="false"
        android:launchMode="singleTask">
        <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        <meta-data android:name="com.google.vr.vrcore" android:value="optional" />
    </activity>
    
  • Resolve Merging Conflicts: If your main app’s Manifest conflicts with the Unity AAR’s (e.g., theme mismatches), use tools:replace to force the correct settings:
    <activity
        android:name="com.unity3d.player.UnityPlayerActivity"
        android:theme="@style/UnityThemeSelector"
        tools:replace="android:theme">
        <!-- Rest of activity config -->
    </activity>
    

2. Ensure Google VR Resources Are Included

Sometimes Unity doesn’t package all Google VR assets into the AAR. Verify the AAR’s assets folder contains gvr-related files (shaders, layouts, configs). If missing:

  • In Unity, when exporting the AAR, make sure Export All Resources is checked.
  • If that still doesn’t work, manually copy Assets/GoogleVR from your Unity project into your Android app’s assets directory.

3. Verify VR Initialization Flow

The way your main app launches the UnityPlayerActivity might be skipping VR initialization. Try these tweaks:

  • In your main app, when starting the Unity activity, use an Intent that preserves Unity’s required launch flags:
    Intent unityIntent = new Intent(this, UnityPlayerActivity.class);
    unityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(unityIntent);
    
  • Add a manual VR initialization trigger in the UnityPlayerActivity’s onCreate method:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Force VR mode if it's not enabled
        if (UnityPlayer.getInstance().getVRMode() == UnityPlayer.VRMode.NONE) {
            UnityPlayer.getInstance().setVRMode(UnityPlayer.VRMode.VIRTUAL_REALITY);
        }
    }
    

4. Confirm Unity’s VR Project Settings

Don’t forget to double-check your Unity project’s VR configuration before exporting:

  • Go to Edit > Project Settings > Player > XR Plug-in Management
  • Enable Google VR and set Cardboard as the target device
  • Ensure Virtual Reality Supported is checked (for older Unity versions)

5. Check Unity Code for VR Initialization

Make sure your Unity code isn’t accidentally disabling VR:

  • Add early VR initialization in a MonoBehaviour’s Awake method:
    void Awake() {
        UnityEngine.XR.XRSettings.enabled = true;
    }
    
  • Remove any logic that might disable VR based on runtime environment checks (e.g., incorrectly detecting the main app as a non-VR context)

Start with the Manifest checks—this is where most of these integration issues crop up. If that doesn’t fix it, move on to verifying resources and initialization flows.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:50:57