2015-04-01 53 views
1

我是一个Android新手错误 - Android应用

我下面这个教程Android splash screen howto,这是一个有点过时,但反正。

我只是添加新的布局文件splash.xml到RES /布局,然后将图像转换成可绘制/ 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 ...

提前感谢!

编辑

的logcat:

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) 
+0

你的错误是什么? logcat说什么?始终发布您的logcat。 – 2015-04-01 05:03:26

+0

请发布您的错误日志 – ViVekH 2015-04-01 05:03:58

+0

错误日志...在哪里? – 2015-04-01 05:05:30

回答

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

这些观点出现在您的activity_main xml文件..当你改变你的布局文件为什么要访问这些?

+0

也许这就是问题,你看,我只是按照教程,但这是基于一个Hello World类型的应用程序,我想我应该添加支持闪屏在同一个activity_main文件 – NeoVe 2015-04-01 05:22:23

+0

我正在访问这些,因为这是一个覆盖图像相机应用程序,我正在构建一个简单的 – NeoVe 2015-04-01 05:23:28

+1

有没有什么叫android屏幕的启动画面..它只是你必须实现它像一个活动.. splashscreen只是一个活动像其他活动.. – 2015-04-01 05:25:49