将 Facebook 插件与 Unity 一起使用时出现 ActivityNotFoundException
Posted
技术标签:
【中文标题】将 Facebook 插件与 Unity 一起使用时出现 ActivityNotFoundException【英文标题】:ActivityNotFoundException when using Facebook plugin with Unity 【发布时间】:2015-12-03 21:50:02 【问题描述】:我正在使用 Unity 5.2.2p2、Facebook Unity SDK 7.2.2 和 Prime31 的 android IAB 插件 2.9。当我编译我的应用程序并在设备上运行它时,在 adb 日志中我看到:
I/Unity (18149): AndroidJavaException: android.content.ActivityNotFoundException: Unable to find explicit activity class com.-----.----/com.facebook.unity.FBUnityLoginActivity; have you declared this activity in your AndroidManifest.xml?
I/Unity (18149): at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0
I/Unity (18149): at UnityEngine.AndroidJNISafe.CallStaticVoidMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0
I/Unity (18149): at UnityEngine.AndroidJavaObject._CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
I/Unity (18149): at UnityEngine.AndroidJavaObject.CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
I/Unity (18149): at Facebook.Unity.Mobile.Android.FBJavaClass.CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
I/Unity (18149): at Facebook.Unity.Mobile.Android.AndroidFacebook.CallFB (System.String method, System.String args) [0x00000] in <filename unknown>:0
I/Unity (18149): at Facebook.Unity.
但是在 Assets/Plugins/Android/AndroidManifest.xml 文件中,我有以下定义:
<activity android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerActivity" android:screenOrientation="sensorLandscape">
<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>
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
</activity>
<activity android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:name="com.facebook.unity.FBUnityLoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:name="com.facebook.unity.FBUnityDialogsActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:configChanges="keyboardHidden|orientation" android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
<activity android:exported="true" android:name="com.facebook.unity.FBUnityAppLinkActivity"/>
<activity android:exported="true" android:name="com.facebook.unity.FBUnityDeepLinkingActivity"/>
<activity android:name="com.facebook.unity.FBUnityGameRequestActivity"/>
<activity android:name="com.facebook.unity.FBUnityCreateGameGroupActivity"/>
<activity android:name="com.facebook.unity.FBUnityJoinGameGroupActivity"/>
<activity android:name="com.facebook.unity.AppInviteDialogActivity"/>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="fb1234removed"/>
<provider android:authorities="com.facebook.app.FacebookContentProvider1234removed" android:exported="true" android:name="com.facebook.FacebookContentProvider"/>
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" android:label="@string/app_name" android:name="com.facebook.FacebookActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<activity android:configChanges="keyboard|keyboardHidden|layoutDirection|orientation|screenLayout|screenSize|uiMode" android:name="com.prime31.GoogleIABProxyActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
这对我来说毫无意义。这曾经有效,但我不知道为什么它不再有效了。
【问题讨论】:
如果您删除了 IAB 插件,它会生成吗?您包含的清单看起来不错(尽管它不完整 - 也许它的其他部分有问题)?我之前已经成功地同时使用了这两个插件的早期版本。 【参考方案1】:只是想回答我已经设法修复它。这是 Unity 的其中一件事情,您只需卸载所有插件并重新安装它们。找到与这两个插件相关的每个文件,删除它们,然后一次安装一个。
此外,通过 2.9 中的新 Smoola
集成,如果您不使用 Smoola,插件仍然会加载并检查互联网访问。这需要ACCESS_NETWORK_STATE
清单不包含的ACCESS_NETWORK_STATE
权限。
【讨论】:
以上是关于将 Facebook 插件与 Unity 一起使用时出现 ActivityNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章
Facebook SDK Unity 插件 - 移动应用广告跟踪
Unity:无法将类转换为dex格式插件:Unity IAP 1.16 Facebook SDK 7.13.0 [复制]
与 MethodChannel 一起使用的自定义 Facebook 登录
与 android manifest 上的活动标签冲突:Unity3d 中的 Facebook 和 Google Play 游戏