Приложение, использующее плагин Parse Unity, сбой на устройстве Android, но отлично работает в редакторе
Я пытаюсь использовать Parse в моей игре Unity, чтобы реализовать высокие оценки. Моя проблема в том, что когда я пытаюсь поместить игру на свое Android-устройство, чтобы проверить ее, имя приложения выглядит иначе. Он появляется как "ParseUnityPushSample", хотя я ничего не изменил, кроме добавления файлов, которые Parse дает мне, чтобы использовать его. Настройки сборки не изменились и даже показывают, что мое имя пакета одинаково, но при тестировании его на устройстве этот результат.
Тестирование в Unity 5 отлично работает. Игра загружается как надо. Это происходит только тогда, когда я пытаюсь установить его на устройство для тестирования.
Наряду с этим, изменяя имя приложения, он также падает при открытии. Я получаю подсказку, в которой говорится, что "ParseUnityPushSample" потерпел неудачу в любое время, когда я попытаюсь открыть его на устройстве Android.
EDIT:
Хорошо, поэтому я выяснил способ просмотра некоторых ошибок, возникающих при тестировании на устройстве. Я получаю эту ошибку: "Невозможно найти активность единства в манифесте. Вам нужно убедиться, что атрибут ориентации установлен на датчикLandscape вручную.
UnityEditor.BuildPlayerWindow: BuildPlayerAndRun() "Я понятия не имею, что это за проблема, так как я вручную установил ориентацию для действия на sensorLandscape в манифесте Android.
<?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
Обновление до версии 1.5.4 также не устранило проблему. Все еще возникают проблемы с манифестом Android с тем же сообщением об ошибке. Если у кого есть идеи, пожалуйста, дайте мне знать!
Ответы
Ответ 1
В моем случае, просто взятие Unity sdk не было ответом. Чтобы заставить его работать, мне пришлось использовать то, что было в пустом проекте Unity, а затем я также удалил манифест android, который v1.5.2 включен в sdk. Выполнение обеих этих функций позволило приложению работать правильно на моем устройстве Android.
Ответ 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>