저번에 질문드렸던 한 사람입니다.
개발중 오류가났는데 그때 알려주신 방법으로 다른부분이 오류나서 고쳐보았습니다만, 소용이 없었습니다.
에러코드는
12-13 21:10:47.542: E/AndroidRuntime(20197): FATAL EXCEPTION: main
12-13 21:10:47.542: E/AndroidRuntime(20197): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kmcpe.mcpelauncher/com.kmcpe.mcpelauncher.GoApp}: java.lang.NullPointerException
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.ActivityThread.access$700(ActivityThread.java:143)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.os.Handler.dispatchMessage(Handler.java:99)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.os.Looper.loop(Looper.java:137)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.ActivityThread.main(ActivityThread.java:4950)
12-13 21:10:47.542: E/AndroidRuntime(20197): at java.lang.reflect.Method.invokeNative(Native Method)
12-13 21:10:47.542: E/AndroidRuntime(20197): at java.lang.reflect.Method.invoke(Method.java:511)
12-13 21:10:47.542: E/AndroidRuntime(20197): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:997)
12-13 21:10:47.542: E/AndroidRuntime(20197): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
12-13 21:10:47.542: E/AndroidRuntime(20197): at dalvik.system.NativeStart.main(Native Method)
12-13 21:10:47.542: E/AndroidRuntime(20197): Caused by: java.lang.NullPointerException
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.widget.ListView.setAdapter(ListView.java:466)
12-13 21:10:47.542: E/AndroidRuntime(20197): at com.kmcpe.mcpelauncher.GoApp.onCreate(GoApp.java:73)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.Activity.performCreate(Activity.java:5177)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
12-13 21:10:47.542: E/AndroidRuntime(20197): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
12-13 21:10:47.542: E/AndroidRuntime(20197): ... 11 more
입니다.
에러 가 지목하는 소스는 custom_list.setAdapter(adapter);입니다.
관련 소스는 앞부분
private ArrayList<Apps_List_Data> Array_Data;
private Apps_List_Data data;
private Apps_List_Adapter adapter;
String[] app_c;
String[] app_n;
String[] app_m;
ListView custom_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.goapp);
PackageManager pm = getPackageManager();
app_c = getResources().getStringArray(R.array.apps_c);
app_n = getResources().getStringArray(R.array.apps_n);
app_m = getResources().getStringArray(R.array.apps_m);
RelativeLayout layout = (RelativeLayout)findViewById(R.id.goapp_layout);
Drawable d = layout.getBackground();
d.setAlpha(100);
layout.setBackgroundDrawable(d);
과,
오류가 지적한 소스가 들어가있는
custom_list = (ListView) findViewById(R.id.apps_listview);
adapter = new Apps_List_Adapter(this,
android.R.layout.simple_list_item_1, Array_Data);
custom_list.setAdapter(adapter);
custom_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PackageManager pm = getPackageManager();
try {
pm.getApplicationInfo(data.getSub_Title().toLowerCase(),PackageManager.GET_META_DATA);
Intent intent = pm.getLaunchIntentForPackage(getResources().getStringArray(R.array.apps_c)[position]);
startActivity(intent);
} catch (NameNotFoundException e) {
AlertDialog.Builder builder = new AlertDialog.Builder(GoApp.this);
builder.setTitle("앱이 존재하지 않습니다.");
builder.setMessage("앱이 존재하지 않습니다.\n일시적인 오류 또는 데이터 오류입니다.");
builder.setNegativeButton("OK",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
}
});
custom_list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
PackageManager pm = getPackageManager();
try {
pm.getApplicationInfo(data.getSub_Title().toLowerCase(),PackageManager.GET_META_DATA);
AlertDialog.Builder builder = new AlertDialog.Builder(GoApp.this);
builder.setTitle(app_n[position]);
builder.setMessage("페키치 이름"+app_c[position]+"\n제작자:"+app_m[position]);
builder.setNegativeButton("OK",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
} catch (NameNotFoundException e) {
AlertDialog.Builder builder = new AlertDialog.Builder(GoApp.this);
builder.setTitle("앱이 존재하지 않습니다.");
builder.setMessage("앱이 존재하지 않습니다.\n일시적인 오류 또는 데이터 오류입니다.");
builder.setNegativeButton("OK",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
return true;
}
});
}
}
입니다.
java.lang.NullPointerException은 참 오류를 잡아내기 어렵군요;;
빠른 답변은 항상 감사드립니다.