1

Facebook和Google Play遊戲插件都要求我在Android Manifest中使用android.intent.action.MAIN和android.intent.action.LAUNCHER。但是一個取消另一個。 我是新來的移動開發。有什麼解決方法嗎?我能做什麼錯了?與Android清單上的活動標籤衝突:Unity3d中的Facebook和Google Play遊戲

清單:

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

回答

3

是的,有一種解決方法!在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中,使用它作爲你的主要活動。

0
@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。

由於會話原因,初始值爲空值。

相關問題