Android StudioとGenymotionをエミュレータとして使用してアプリケーションを作成しています.3つのEditTextでデータを入力していますが、ボタンをクリックしてsqliteデータベースに保存します...作業とこれは私がThirdActivityであるLOGCATボタンクリック時にIllegalStateExceptionが発生し、アプリケーションが停止する
FATAL EXCEPTION: main
Process: com.example.aadeshmishra.com.sdk18, PID: 1551
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
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:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
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:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.aadeshmishra.com.sdk18.ThirdActitvity.addData(ThirdActitvity.java:64)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
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:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
ボタンは、addDataという名前のメソッドを呼び出します()に見えるものではありません。ここ
ここThirdActivity.java
public class ThirdActitvity extends AppCompatActivity {
EditText ed1,ed2,ed3;
Button B1;
UserDBHelper mydb;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
ed1 = (EditText)findViewById(R.id.E1);
ed2 = (EditText)findViewById(R.id.E2);
ed3 = (EditText)findViewById(R.id.E3);
B1 = (Button) findViewById(R.id.addB);
}
public void addData(View view)
{
String name = ed1.getText().toString();
String desc = ed2.getText().toString();
String contact = ed3.getText().toString();
Boolean r1 = mydb.insertDataClient(name,desc,contact);
if(r1 == true)
{
Toast.makeText(this,"Data inserted",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this,"Data not inserted",Toast.LENGTH_LONG).show();
}
}
}
のコードactivity_third.xml
<EditText
android:id="@+id/E1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/client"
android:textSize="20sp"
android:layout_marginEnd="20dp"/>
<EditText
android:id="@+id/E2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/destail"
android:textSize="20sp"
android:layout_alignEnd="@+id/E1" />
<EditText
android:id="@+id/E3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="@string/EN"
android:textSize="20sp"
android:layout_marginBottom="18dp"
android:layout_above="@+id/addB"
/>
<Button
android:id="@+id/addB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="49dp"
android:text="@string/add"
android:textSize="20sp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:onClick="addData"
/>
と最後でのコードUserDbHelper.java
問題は何ですか? ありがとうございます..!
NullPointerExceptionが示すスタックトレースなど
mydb
を初期化する必要があります。コードをデバッグするだけです。 – ADMブレークポイントとデバッグを設定してwhats nullを確認しますか? – Xenolion
アドバイスありがとう –