【问题标题】:Conflict with activity tags on android manifest: Facebook and Google Play Games in Unity3d与 android manifest 上的活动标签冲突:Unity3d 中的 Facebook 和 Google Play 游戏
【发布时间】:2013-09-29 00:46:40
【问题描述】:

Facebook 和 Google Play 游戏插件都要求我在 Android Manifest 中使用 android.intent.action.MAIN 和 android.intent.action.LAUNCHER。但是一个取消另一个。 我是移动开发的新手。有什么解决方法吗?我做错了什么?

清单:

<application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false" android:name="com.soomla.store.SoomlaApp">

<intent-filter>

    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />

    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />

<activity android:name="com.bfsgooglegames.GoogleGamesUnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">

</activity>

<activity android:name="com.bfsgooglegames.GoogleGamesUnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">

  <meta-data android:name="android.app.lib_name" android:value="unity" />

  <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />

</activity>

<activity android:name="com.facebook.LoginActivity" android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation">

</activity>

<service android:name="com.soomla.billing.BillingService" />

<receiver android:name="com.soomla.billing.BillingReceiver">

  <intent-filter>

    <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />

    <action android:name="com.android.vending.billing.RESPONSE_CODE" />

    <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />

  </intent-filter>

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="\ 209458325882127" />

<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id_games" />

【问题讨论】:

    标签: android-intent unity3d google-play-games facebook-unity-sdk soomla


    【解决方案1】:

    是的,有一个解决方法!在 java 中的主要活动类中,您可以将其添加到 onActivityResult() 方法中:

    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

    如果您无权访问您正在使用的主要活动com.bfsgooglegames.GoogleGamesUnityPlayerActivity 的源代码,您可以创建另一个扩展该活动的类。示例:

    import android.content.Intent;
    import android.os.Bundle;
    import com.facebook.Session;
    
    public class MyMainUnityPlayerActivity extends com.bfsgooglegames.GoogleGamesUnityPlayerActivity {
      @Override
      protected void onCreate(Bundle arg0) {
        super.onCreate(arg0);
      }
    
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
      } 
    }
    

    然后在您的 AndroidManifest.xml 中,将其用作您的主要活动。

    【讨论】:

      【解决方案2】:
      @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
      
          **if( null != Session.getActiveSession() )**
          {   
              Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
          **}**
        } 
      

      如果您不这样做,您必须先以更完整的方式登录 Facebook。

      因为会话的初始值是空值所以是。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多