2015-04-01 3 views
1

Я андроид новичкаОшибка при попытке добавить заставку - Android приложение

Я следовал этому учебнику Android splash screen howto, это немного устарело, но в любом случае.

Я просто добавить новый файл макета splash.xml в Рез/макет, а затем изображение в вытяжке/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 для этих целей, на самом деле не уверен ...

Спасибо заранее!

EDIT

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? Всегда отправляйте свой логарифм. –

+0

Пожалуйста, разместите свой журнал ошибок – ViVekH

+0

Где находится журнал ошибок ...? –

ответ

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

+0

Я обращаюсь к этим , потому что это приложение оверлейной камеры для изображений, простое, которое я создаю. – NeoVe

+1

В андроиде ничего не называется заставкой. Его просто нужно реализовать как активность .. splashscreen - это просто активность, как и другая деятельность. –

Смежные вопросы