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

14

我正在尝试在我的Unity游戏中使用Parse来实现高分数。我的问题是,当我尝试将游戏放到我的Android设备上进行测试时,应用程序的名称会变成不同的名字。它显示为“ParseUnityPushSample”,即使我除了添加Parse给我的文件以便使用之外,什么都没有改变。生成设置没有改变,甚至显示我的包名称是相同的,但在设备上测试时却出现了这个结果。

在Unity 5中测试可以正常工作。游戏按照预期加载。只有当我尝试将其放到设备上进行测试时才会出现此情况。

除了更改应用程序名称外,它还会在打开时崩溃。每次我尝试在Android设备上打开它时,会弹出一个提示,显示“ParseUnityPushSample”失败。

编辑:

好吧,我找到了一种方法来查看测试设备上发生的一些错误。我收到了这个错误消息:“无法在清单中找到unity activity。您需要手动确保将方向属性设置为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>

2015年8月10日

我了解到这可能是Parse v1.5.2的问题,尽管更改为v1.3.2也无法解决我面临的问题。如果我了解到任何新信息,我会立即更新。

2015年8月11日

升级到v1.5.4也没有解决这个问题。仍然在android清单文件中遇到相同的错误消息。如果有人有任何想法,请告诉我!


没有日志记录,任何人都很难帮助你,特别是在崩溃问题上。 - Stralo
@Stralo 我明白这个......但是使用Unity时,当我尝试在设备上运行此应用程序时,它并没有像Android Studio一样提供完整的logcat或类似的东西。 - sabo
是的,您可以通过终端生成logcat文件。https://unitycodes.wordpress.com/2015/02/07/how-to-set-up-adb-in-terminal-on-mac/ - Neeraj Kumar
@NeerajKumar,即使我在上面添加了一个错误的编辑,我仍然需要这样做吗? - sabo
似乎您的项目中有许多清单文件,其中一些可能会冲突或未正确配置。 - Neeraj Kumar
显示剩余4条评论
2个回答

3

在我的情况下,仅使用Unity SDK并不是解决方案。为了使其正常工作,我必须使用Unity空项目中的内容,然后还删除了SDK中包含的Android清单v1.5.2。这两个步骤都让我的安卓设备上的应用程序可以正确地工作。


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>

尝试了您提供的方法后,应用程序仍然以相同的错误崩溃。还有其他想法吗? - sabo
清单是一个明显的问题,但仍然无法正常工作,这可能是解析SDK的错误。您可以回滚到Parse Unity SDK v1.3.2。似乎其他人也遇到了最新SDK的问题。请前往以下链接 - http://answers.unity3d.com/questions/986245/parse-and-unity5-for-android-broke.html?sort=oldest - Neeraj Kumar
我运气不太好。我使用了v1.3.2下载链接中提供的内容,但是没有做任何更改。它仍然会出现相同的错误并崩溃。 - sabo
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - sabo
如果这与Parse API有关,那么我在编辑器中写入Parse时不会出现问题吗?因为它可以很好地写入Parse。 - sabo
我添加了Parse v1.5.4中的内容,但仍然没有运气。我仍然得到相同的错误。如果这么多不同版本仍然在我的游戏中出现问题,你认为可能是清单中的某些东西吗? - sabo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接