2014-11-16 6 views
0

Я хотел создать приложение, в котором вы можете делать снимки и сохранять их, но когда я его тестирую, я получил эту ошибку в своем логарифме: «java.lang.RuntimeException: не удалось запустить активность ComponentInfo {com.example.random/com.example.random.FotoMaker}: java.lang.NullPointerException ". Я думаю, что проблема имеет какое-то отношение к намерению, но я не уверен, что мне нужно добавить/изменить в моем FotoMaker.java.Невозможно начать работу ComponentInfo NullpointerException -

MenuScreen.java:

package com.example.random; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.Window; 
import android.widget.Button; 

public class MenuScreen extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_main); 



     findViewById(R.id.test).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Log.d("DEBUG", "test"); 
       Intent intent = new Intent(MenuScreen.this, FotoMaker.class); 
       startActivityForResult(intent, 0); 
      } 
     }); 


     findViewById(R.test1).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Log.d("DEBUG", "test1"); 
       Intent intent = new Intent(MenuScreen.this, FotoMaker.class); 

      } 
     }); 

     findViewById(R.test2).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Log.d("DEBUG", "test2"); 
       Intent intent = new Intent(MenuScreen.this, FotoMaker.class); 

      } 
     }); 



     findViewById(R.id.verlaat_app).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Log.d("DEBUG", "test3"); 
       MenuScreen.this.finish(); 
      } 
     }); 
    } 
} 

MenuScreen.java:

package com.example.random; 


import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageView; 


public class FotoMaker extends Activity 
    { 
    ImageView iv; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
     { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.testpic); 

     iv = (ImageView) findViewById(R.id.imageView); 
     Button btn = (Button) findViewById(R.id.testpic); 
     btn.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick (View v){ 
       Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(intent, 0); 

      } 
     }); 
     } 
     @Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) 
     { 
      if(requestCode == 0) 
      { 
       Bitmap theImage = (Bitmap) data.getExtras().get("data"); 
       iv.setImageBitmap(theImage); 
      } 
     } 

    } 

LogCat:

11-16 18:30:14.366: E/AndroidRuntime(1522): FATAL EXCEPTION: main 
11-16 18:30:14.366: E/AndroidRuntime(1522): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.random/com.example.random.FotoMaker}: java.lang.NullPointerException 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1996) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2023) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.ActivityThread.access$600(ActivityThread.java:127) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1174) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.os.Looper.loop(Looper.java:137) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.ActivityThread.main(ActivityThread.java:4503) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at java.lang.reflect.Method.invoke(Method.java:511) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at dalvik.system.NativeStart.main(Native Method) 
11-16 18:30:14.366: E/AndroidRuntime(1522): Caused by: java.lang.NullPointerException 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at com.example.random.FotoMaker.onCreate(FotoMaker.java:27) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.Activity.performCreate(Activity.java:4479) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960) 
11-16 18:30:14.366: E/AndroidRuntime(1522):  ... 11 more 

testpic.xml:

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

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 
+0

сообщение testpic XML-файл также –

+0

Я добавил testpic.xml – goedkoop

+0

Я не вижу 'Button' в вашем' testpic.xml' пока вы пытаетесь установить кнопку с идентификатором 'testpic' –

ответ

2

Кажется, что вы забыли добавить идентификатор кнопки testpic в свой xml-макет, поэтому в FotoMaker activity ваша кнопка btn is null.

Button btn = (Button) findViewById(R.id.testpic); <-- null here 

Так добавить вид кнопки с идентификатором testpic в файле testpic.xml макета.

+0

Еще один вопрос: Когда я нажимаю кнопки test/test1/test2, ничего не происходит, любая идея почему? – goedkoop

1
Button btn = (Button) findViewById(R.id.testpic); 

нет кнопки называется testpic в макете «testpic» вам нужно добавить кнопку testpic файла всего помещения макета, в противном случае он будет возвращать нуль.

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