我需要在我的 Flex Mobile 应用程序中使用 Android SDK 显示一个用 Java 编写的活动。我已经看到它使用 Map ANE 完成,但找不到任何示例代码或任何类似的东西。我已经创建了我的 ANE 工作所需的 Java 和 ActionScript 代码(活动已创建,并且存在真正桥接 Java 和 AS3 所需的所有类、事件和方法),我只是不知道如何添加它到舞台上。我知道它不能添加到 DisplayList 中,我可以将它作为舞台对象。
如果它有帮助,我正在尝试使用 MediaPlayer 显示视频(由于使用 AS3/Flex 完成时的 MP4 流问题)。
对于迈克尔(2012 年 8 月 27 日上午 9:44 MST):
08-27 09:27:07.836: I/CS VideoInit(2567): context is set
08-27 09:27:07.836: I/CS VideoInit(2567): intent is instantiated
08-27 09:27:07.836: I/ActivityManager(349): START {cmp=air.AndroidANETesting2/xi.video.android.extension.VideoActivity u=0} from pid 2567
我的活动的第一行是
Log.i("CS VideoActivity","Made it inside the activity somehow");
这是我的Java。这是初始化函数:
VideoInit.context = context;
Log.i("CS VideoInit","context is set");
Intent intent = new Intent( context.getActivity(), VideoActivity.class );
Log.i("CS VideoInit","intent is instantiated");
context.getActivity().startActivity( intent );
Log.i("CS VideoInit","Activity is started");
context.dispatchStatusEventAsync("PLAY", "PLAY");
这是我的 VideoActivity onCreate():
super.onCreate(savedInstanceState);
Log.i("CS VideoActivity","Made it inside the activity somehow");
还有我的清单(只是应用程序部分):
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".VideoActivity"
android:label="@string/title_activity_video" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
更新(2012 年 8 月 27 日 @ 上午 10:52 MST) 经过进一步调查(或反复试验,无论你想怎么称呼它),我决定将 startActivity() 行放入 try{}catch(Throwable e) 以查看它抛出了什么错误(如果有的话)。有趣的是,它抛出了这个。
08-27 10:49:41.406: I/CS VideoInit(7786): Unable to find explicit activity class {air.AndroidANETesting2.debug/xi.video.android.extension.VideoActivity}; have you declared this activity in your AndroidManifest.xml?
看来我需要重新检查我的 Android Manifest 文件。