实现Parse Unity Plugin的应用程序在android设备上崩溃,但在编辑器中运行良好

本文关键字:崩溃 编辑器 运行 Plugin Unity Parse 应用程序 android 实现 | 更新日期: 2023-09-27 18:05:54

我试图在我的Unity游戏中使用Parse来实现高分。我的问题是,当我尝试将游戏放到自己的android设备上进行测试时,应用的名称出现了不同。它出现为"ParseUnityPushSample",尽管除了添加Parse给我使用它的文件外,我没有改变任何东西。构建设置没有改变,它甚至显示我的包名称是相同的,但在设备上测试它有这个结果。

在Unity 5中测试效果很好。游戏按预期加载。只有当我尝试将其放在设备上进行测试时才会发生这种情况。

随着它改变应用程序的名称,它也崩溃时打开。我得到一个提示,说"ParseUnityPushSample"失败了任何时候我试图打开它在android设备上。

编辑:

所以我想出了一种方法来查看在设备上测试时发生的一些错误。我得到这个错误:"无法在清单中找到统一活动。你需要手动确保方向属性设置为sensorLandscape。UnityEditor.BuildPlayerWindow: BuildPlayerAndRun()"我不知道问题是什么,因为我在Android Manifest中手动将活动的方向设置为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>

8/10/15

我已经了解到这可能是Parse v1.5.2的问题,尽管更改到v1.3.2也没有帮助解决我所面临的问题。我一有消息就会及时更新。

8/11/15

更新到v1.5.4也没有解决这个问题。仍然有问题与android清单与相同的错误信息。如果有人有任何想法,请让我知道!

实现Parse Unity Plugin的应用程序在android设备上崩溃,但在编辑器中运行良好

在我的案例中,仅仅使用Unity sdk并不是答案。为了使其工作,我不得不使用Unity空白项目中的内容,然后我还删除了sdk中包含的1.5.2版本的android清单。做这两件事允许应用程序在我的android设备上正常工作。

问题是在您的清单文件中,您已经更改了以下行

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