我正在开发一个需要通过mjpeg获取Airdrone流的APP。
我正在使用this topic中的类。它适用于示例,但我需要在同一视图中添加一些其他元素,例如控制de airdrome的按钮。
示例代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mv = new MjpegView(this);
setContentView(mv);
...
我试图做但却无法正常工作......
...
mv = (MjpegView) findViewById(R.id.mv);
setContentView(R.layout.activity_test);
...
我的布局xml ......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
tools:context="com.gabilheri.rosbridgecontroller.app.TestActivity"
android:layout_height="fill_parent"
android:id="@+id/mainLayout">
<com.gabilheri.rosbridgecontroller.app.VideoStreamClasses.MjpegView
android:id="@+id/mv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</FrameLayout>
这是LOGCAT错误:
04-26 22:40:19.521 2229-2229/com.gabilheri.rosbridgecontroller.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.gabilheri.rosbridgecontroller.app, PID: 2229
java.lang.NullPointerException
at com.gabilheri.rosbridgecontroller.app.TestActivity$DoRead.onPostExecute(TestActivity.java:86)
at com.gabilheri.rosbridgecontroller.app.TestActivity$DoRead.onPostExecute(TestActivity.java:59)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5184)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1015)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
at dalvik.system.NativeStart.main(Native Method)
这是onPost执行方法中的行:
mv.setSource(result); //Line 86
mv.setDisplayMode(MjpegView.SIZE_BEST_FIT); // Line 87
mv.showFps(true); // Line 88
有人有什么想法吗?谢谢! :d
答案 0 :(得分:1)
我弄明白我的问题是什么......
我试图这样做:
mv = (MjpegView) findViewById(R.id.mv);
setContentView(R.layout.activity_test);
得到了NullPointerException ..我改为:
setContentView(R.layout.activity_test);
mv = (MjpegView) findViewById(R.id.mv);
现在一切都像以前那样工作:)