实现Parse Unity插件的应用程序在Android设备上崩溃,但在编辑器中工作正常

时间:2015-08-02 18:49:30

标签: c# android parse-platform unity3d unity5

我正在尝试在Unity游戏中使用Parse来实现高分。我的问题是,当我尝试将游戏放在我的Android设备上进行测试时,应用程序的名称会有所不同。它出现了“ParseUnityPushSample”,即使除了添加Parse让我使用它的文件之外我没有改变任何东西。构建设置没有改变,它甚至显示我的包名称是相同的,但在设备上测试它有这个结果。

在Unity 5中测试它可以正常工作。游戏加载应该。这只有在我尝试将其放在设备上进行测试时才会发生。

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

编辑:

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

<?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>

15年8月10日

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

15年8月11日

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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>