14

我试图在我的 Unity 游戏中使用 Parse 以实现高分。我的问题是,当我尝试将游戏放在我的 android 设备上进行测试时,应用程序的名称出现了不同的情况。它以“ParseUnityPushSample”的形式出现,尽管除了添加 Parse 提供给我使用它的文件之外,我没有进行任何更改。构建设置没有改变,它甚至显示我的包名是相同的,但是在设备上测试它有这个结果。

在 Unity 5 中测试它工作正常。游戏按应有的方式加载。仅当我尝试将其放在设备上进行测试时才会发生这种情况。

随着它更改应用程序名称,它在打开时也会崩溃。每当我尝试在 Android 设备上打开它时,我都会收到一条提示“ParseUnityPushSample”失败。

编辑:

好的,所以我想出了一种方法来查看在设备上进行测试时发生的一些错误。我收到此错误:“无法在清单中找到统一活动。您需要确保手动将方向属性设置为 sensorLandscape。UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()”我不知道问题是什么,因为我已经手动设置了Android Manifest 中 Activity 到 sensorLandscape 的方向。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.laserdeflector.sab" android:versionName="1.0.1" android:versionCode="1" android:installLocation="preferExternal">
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="22" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
<uses-permission android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
<application android:label="Laser Deflector" android:icon="@drawable/app_icon" android:screenOrientation="sensorLandscape" android:name="com.soomla.SoomlaApp" android:debuggable="false" android:isGame="true">
<activity android:name=".UnityPlayerActivity">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
  </intent-filter>
</activity>
<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
  <intent-filter>
    <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
    <category android:name="com.laserdeflector.sab" />
  </intent-filter>
</receiver>
<service android:name="com.parse.ParsePushService" />
<activity android:name="com.soomla.store.billing.google.GooglePlayIabService$IabActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<meta-data android:name="billing.service" android:value="google.GooglePlayIabService" />
</application>
<uses-feature android:glEsVersion="0x00020000" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

2015 年 8 月 10 日

我了解到这可能是 Parse v1.5.2 的一个问题,尽管更改为 v1.3.2 对我面临的问题也没有帮助。我会在我了解更多信息后立即更新。

2015 年 8 月 11 日

更新到 v1.5.4 也没有解决问题。android 清单仍然存在问题,并带有相同的错误消息。如果有人有任何想法,请告诉我!

4

2 回答 2

3

就我而言,仅仅使用 Unity sdk 并不是答案。为了使它工作,我不得不使用 Unity 空白项目中的内容,然后我还删除了 v1.5.2 包含在 sdk 中的 android 清单。做这两件事可以让应用程序在我的 android 设备上正常工作。

于 2015-08-12T23:49:17.067 回答
2

问题出在您的清单文件中,您已更改以下几行

<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">

<service android:name="com.parse.ParsePushService" />

对此

<receiver android:name="com.laserdeflector.PushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">

<service android:name="com.laserdeflector.ParsePushService" />

这是正确的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.laserdeflector.sab"
    android:versionCode="1"
    android:versionName="1.0">

  <uses-sdk android:minSdkVersion="10" />

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />
  <uses-permission android:name="android.permission.VIBRATE" />
  <uses-permission android:name="android.permission.GET_ACCOUNTS" />
  <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
  <permission android:protectionLevel="signature" android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />
  <uses-permission android:name="com.laserdeflector.sab.permission.C2D_MESSAGE" />

  <application android:label="LaserDeflector" android:icon="@drawable/app_icon">
    <activity android:name=".UnityPlayerActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <receiver android:name="com.parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
      <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="com.laserdeflector.sab" />
      </intent-filter>
    </receiver>

    <service android:name="com.parse.ParsePushService" />
  </application>
</manifest>
于 2015-08-04T03:38:50.517 回答