java - 尝试添加启动画面时出错 - Android 应用程序

标签 java android xml android-layout

我是一个安卓新手

我正在学习本教程 Android splash screen howto , 它有点过时了,但无论如何。

我只是将新的布局文件splash.xml添加到res/layout中,然后将图像添加到drawable/mdpi中,然后我将主图像更改为MainActivity.java,即:

setContentView(R.layout.activity_main);

setContentView(R.layout.splash);

activity_main 是默认布局的名称,activity_main.xml,splash 是另一个名为 splash.xml 的布局的名称。

但是应用停止了,说应用不幸停止了,我什至无法访问它。

我不知道我在这里遗漏了什么,这是 MainActivity.java 上有趣的代码:

 protected void onCreate(Bundle savedInstanceState) 
  {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);



    getWindow().setFormat(PixelFormat.TRANSLUCENT);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(
                         WindowManager.LayoutParams.FLAG_FULLSCREEN,
                         WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.splash);

    relativeLayout=(RelativeLayout) findViewById(R.id.containerImg);
    relativeLayout.setDrawingCacheEnabled(true);
    cameraSurfaceView = (SurfaceView)
                                       findViewById(R.id.surfaceView1);
  //  cameraSurfaceView.setLayoutParams(new FrameLayout.LayoutParams(640, 480));
    cameraSurfaceHolder = cameraSurfaceView.getHolder();
    cameraSurfaceHolder.addCallback(this);
//    cameraSurfaceHolder.setType(SurfaceHolder.
  //                                               SURFACE_TYPE_PUSH_BUFFERS);




    btnCapture = (Button)findViewById(R.id.button1);
    btnCapture.setOnClickListener(new OnClickListener() 
    {   
      @Override
      public void onClick(View v) 
      {
         // TODO Auto-generated method stub
         camera.takePicture(cameraShutterCallback, 
                                       cameraPictureCallbackRaw,
                                       cameraPictureCallbackJpeg);
      }
    });
  } 

我的activity_main.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<RelativeLayout
    android:id="@+id/containerImg"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

        <SurfaceView
            android:id="@+id/surfaceView1"
            android:layout_width="1276px"
            android:layout_height="745px"
            android:layout_centerInParent="true" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/surfaceView1"
            android:layout_alignLeft="@+id/surfaceView1"
            android:layout_marginLeft="20px"
            android:src="@drawable/mark3" />

</RelativeLayout>

<Button
   android:id="@+id/button1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="right|center_vertical"
   android:background="@drawable/camera" />

</FrameLayout>

我的splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<ImageView
    android:src="@drawable/splash"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scaleType="fitXY"/>
</LinearLayout>

有什么想法吗?

也许我应该为此目的使用相同的 activity_main.xml,不太确定...

提前致谢!

编辑

日志:

3774-3774/com.kkoci.photo E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity     ComponentInfo{com.kkoci.photo/com.kkoci.photo.MainActivity}:     java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
        at android.app.ActivityThread.access$700(ActivityThread.java:150)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:175)
        at android.app.ActivityThread.main(ActivityThread.java:5279)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
        at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
        at com.kkoci.photo.MainActivity.onCreate(MainActivity.java:65)
        at android.app.Activity.performCreate(Activity.java:5283)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
at android.app.ActivityThread.access$700(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:175)
at android.app.ActivityThread.main(ActivityThread.java:5279)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

relativeLayout=(RelativeLayout) findViewById(R.id.containerImg);
relativeLayout.setDrawingCacheEnabled(true);
cameraSurfaceView = (SurfaceView)findViewById(R.id.surfaceView1);

这些是您的 activity_main xml 文件中的 View 。当您更改布局文件时,为什么要访问这些 View ?

关于java - 尝试添加启动画面时出错 - Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29383153/

相关文章:

java - 坚持更新由多个线程更新的单个变量

java - 为什么我的 scaleImage 方法会得到奇怪的结果?

java - 与数组列表和 toString 方法相关

android - 如何获取 Xamarin Studio 创建的 keystore 的 SHA-1 指纹?

android - 如何使用从后台线程加载的 RealmResult 并在 Android 主线程中使用它

java - 来自 Tomcat 的不完整 HTTP 响应

java - 可以使用 FloatingActionButton 而不会出现延迟吗?

java - Spring - java.io.FileNotFoundException

sql - SQL 是否有标准的 XML 查询编码?

xml - XSLT - 将值连接到现有值