2015-03-05 8 views
2

Хорошо, поэтому я обновляю свой старый проект 4 Unity в Unity 5.0. В целом, процесс был относительно безболезненным, но теперь моя кнопка Quit не работает, когда я создаю Android.Мобильная игра перезапускается при использовании Application.Quit

И я получаю очень странное сообщение через LogCat:

E/Unity (23691): RenderTexture warning: Destroying active render texture. Switching to main context. 
E/Unity (23691): 
E/Unity (23691): (Filename: Line: 295) 
E/Unity (23691): 

Мои бросить код в моем GameController сценарии довольно прост:

public void Quit() { 
    Application.Quit(); 
} 
void OnApplicationQuit() { 
    if (showAds) { //just in case 
     adController.DestroyAll(); 
    } 
} 

Что я должен искать? Это проблема текстуры? У меня есть пользовательский шейдер, но игра отлично работала с Unity 4.6 раньше.

ответ

2

Итак, все это вернулось к Unity5 и как оно интегрирует старые плагины, такие как Admob. По-видимому, ProxyActivity больше не требуется для Android-сборок. Так что я полностью удалить следующие из файла AndroidManifest.xml:

<activity android:name="com.unity3d.player.UnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" > 
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

А затем переехал <intent-filter> в UnityPlayerActivity:

<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" > 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Теперь Application.Quit() не работает без проблем !

Полная AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.example.admobtest" android:versionName="1.0" android:versionCode="1"> 
    <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" /> 
    <!-- Mobile Ads Permissions --> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false"> 
    <!-- meta-data tag for Google Play services --> 
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> 
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" > 
     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" > 
     <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" /> 
     <meta-data android:name="android.app.lib_name" android:value="unity" /> 
    </activity> 
    <activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" > 
    </activity> 
    <!-- Google Mobile Ads Activity --> 
    <activity android:name="com.google.android.gms.ads.AdActivity" 
       android:label="@string/app_name" 
       android:theme="@android:style/Theme.Translucent" 
       android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> 
    </activity> 
    <!-- PurpleBrain AdBuddiz Activity --> 
    <activity android:name="com.purplebrain.adbuddiz.sdk.AdBuddizActivity" 
       android:label="@string/app_name" 
       android:theme="@android:style/Theme.Translucent"> 
    </activity> 
    </application> 
    <uses-feature android:glEsVersion="0x00020000" /> 
    <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" /> 
</manifest> 
+1

У меня такая же ошибка, но она не работает для меня. Можете ли вы, возможно, использовать весь ваш AndroidManifest.xml для справки? – Tener

+0

Конечно. Добавлено выше. – theprisoner6

+0

Большое спасибо, я попробую это. – Tener

0

@ theprisoner6 aswer не работает для меня, но для справки на другой вариант, чтобы скрыть приложение (переместить его обратно). Это добавило ценности, что, если Android решит, что стоит сохранить приложение в памяти, вы избежите загрузки приложения, которое должно улучшить работу пользователя. Это можно было бы использовать как плагин, но эй, в этом нет необходимости! Очень простой C# код:

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
    AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); 
    var movedToBack = jo.Call<bool>("moveTaskToBack", true); 

своп, что код с Application.Quit(), и вы сделали.

 Смежные вопросы

  • Нет связанных вопросов^_^