这是这个问题的后续 - Debug NullPointerException
我已经修复了 nullpointexception 错误,并且我的应用程序可以正常启动。但现在...当我选择“播放列表按钮”时,应用程序崩溃了。我研究过这个错误但找不到太多。我也尝试自己修复它,但没有成功。我正在查看 logcat,它显示了大量错误,但没有一个错误引用我的代码?当慢慢浏览时,我注意到Caused by: android.view.InflateException: Binary XML file line #8: Error inflateing class android.widget.ListView
,在那里我浏览了列表并看到位于 com.ascendapps.nexplay.PlayListActivity.onCreate(PlayListActivity.java:23)
。
所以我转到我的代码并检查了该行,但我不知道是什么导致了这个错误?
在代码第 23 行中显示 setContentView(R.layout.playlist);
。
我的全类 -
import java.util.ArrayList;
import java.util.HashMap;
import com.ascendapps.nexplay.R;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class PlayListActivity extends ListActivity {
// Songs list
public ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.playlist);
ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();
SongsManager plm = new SongsManager();
// get all songs from sdcard
this.songsList = plm.getPlayList();
// looping through playlist
for (int i = 0; i < songsList.size(); i++) {
// creating new HashMap
HashMap<String, String> song = songsList.get(i);
// adding HashList to ArrayList
songsListData.add(song);
}
// Adding menuItems to ListView
ListAdapter adapter = new SimpleAdapter(this, songsListData,
R.layout.playlist_item, new String[] { "songTitle" }, new int[] {
R.id.songTitle });
setListAdapter(adapter);
// selecting single ListView item
ListView lv = getListView();
// listening to single listitem click
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting listitem index
int songIndex = position;
// Starting new intent
Intent in = new Intent(getApplicationContext(),
MainActivity.class);
// Sending songIndex to PlayerActivity
in.putExtra("songIndex", songIndex);
setResult(100, in);
// Closing PlayListView
finish();
}
});
}
}
这是我的完整 logcat,以防万一我错过了什么?
04-06 17:42:51.774: W/ResourceType(12387): CREATING STRING CACHE OF 72 bytes
04-06 17:42:51.854: I/Adreno-EGL(12387): <qeglDrvAPI_eglInitialize:320>: EGL 1.4 QUALCOMM Build: I0404c4692afb8623f95c43aeb6d5e13ed4b30ddbDate: 11/06/13
04-06 17:42:51.874: D/OpenGLRenderer(12387): Enabling debug mode 0
04-06 17:42:51.924: I/ActivityManager(12387): Timeline: Activity_idle id: android.os.BinderProxy@42308b80 time:51348547
04-06 17:42:54.684: I/ActivityManager(12387): Timeline: Activity_launch_request id:com.ascendapps.nexplay time:51351305
04-06 17:42:54.704: W/ResourceType(12387): CREATING STRING CACHE OF 72 bytes
04-06 17:42:54.764: E/ActivityThread(12387): Failed to inflate
04-06 17:42:54.764: E/ActivityThread(12387): android.view.InflateException: Binary XML file line #8: Error inflating class android.widget.ListView
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.createView(LayoutInflater.java:620)
04-06 17:42:54.764: E/ActivityThread(12387): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
04-06 17:42:54.764: E/ActivityThread(12387): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:344)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.Activity.setContentView(Activity.java:1945)
04-06 17:42:54.764: E/ActivityThread(12387): at com.ascendapps.nexplay.PlayListActivity.onCreate(PlayListActivity.java:23)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.Activity.performCreate(Activity.java:5351)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.ActivityThread.access$800(ActivityThread.java:145)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
04-06 17:42:54.764: E/ActivityThread(12387): at android.os.Handler.dispatchMessage(Handler.java:102)
04-06 17:42:54.764: E/ActivityThread(12387): at android.os.Looper.loop(Looper.java:136)
04-06 17:42:54.764: E/ActivityThread(12387): at android.app.ActivityThread.main(ActivityThread.java:5078)
04-06 17:42:54.764: E/ActivityThread(12387): at java.lang.reflect.Method.invokeNative(Native Method)
04-06 17:42:54.764: E/ActivityThread(12387): at java.lang.reflect.Method.invoke(Method.java:515)
04-06 17:42:54.764: E/ActivityThread(12387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
04-06 17:42:54.764: E/ActivityThread(12387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-06 17:42:54.764: E/ActivityThread(12387): at dalvik.system.NativeStart.main(Native Method)
04-06 17:42:54.764: E/ActivityThread(12387): Caused by: java.lang.reflect.InvocationTargetException
04-06 17:42:54.764: E/ActivityThread(12387): at java.lang.reflect.Constructor.constructNative(Native Method)
04-06 17:42:54.764: E/ActivityThread(12387): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
04-06 17:42:54.764: E/ActivityThread(12387): at android.view.LayoutInflater.createView(LayoutInflater.java:594)
04-06 17:42:54.764: E/ActivityThread(12387): ... 24 more
04-06 17:42:54.764: E/ActivityThread(12387): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020009
04-06 17:42:54.764: E/ActivityThread(12387): at android.content.res.Resources.loadDrawable(Resources.java:2126)
04-06 17:42:54.764: E/ActivityThread(12387): at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
04-06 17:42:54.764: E/ActivityThread(12387): at android.widget.AbsListView.<init>(AbsListView.java:807)
04-06 17:42:54.764: E/ActivityThread(12387): at android.widget.ListView.<init>(ListView.java:146)
04-06 17:42:54.764: E/ActivityThread(12387): at android.widget.ListView.<init>(ListView.java:142)
04-06 17:42:54.764: E/ActivityThread(12387): ... 27 more
04-06 17:42:54.764: E/ActivityThread(12387): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #7: <item> tag requires a 'drawable' attribute or child tag defining a drawable
04-06 17:42:54.764: E/ActivityThread(12387): at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:181)
04-06 17:42:54.764: E/ActivityThread(12387): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
04-06 17:42:54.764: E/ActivityThread(12387): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
04-06 17:42:54.764: E/ActivityThread(12387): at android.content.res.Resources.loadDrawable(Resources.java:2122)
04-06 17:42:54.764: E/ActivityThread(12387): ... 31 more
04-06 17:42:54.764: D/AndroidRuntime(12387): Shutting down VM
04-06 17:42:54.764: W/dalvikvm(12387): threadid=1: thread exiting with uncaught exception (group=0x41fd7c80)
04-06 17:42:54.764: E/AndroidRuntime(12387): FATAL EXCEPTION: main
04-06 17:42:54.764: E/AndroidRuntime(12387): Process: com.ascendapps.nexplay, PID: 12387
04-06 17:42:54.764: E/AndroidRuntime(12387): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ascendapps.nexplay/com.ascendapps.nexplay.PlayListActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class android.widget.ListView
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.ActivityThread.access$800(ActivityThread.java:145)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.os.Handler.dispatchMessage(Handler.java:102)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.os.Looper.loop(Looper.java:136)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.ActivityThread.main(ActivityThread.java:5078)
04-06 17:42:54.764: E/AndroidRuntime(12387): at java.lang.reflect.Method.invokeNative(Native Method)
04-06 17:42:54.764: E/AndroidRuntime(12387): at java.lang.reflect.Method.invoke(Method.java:515)
04-06 17:42:54.764: E/AndroidRuntime(12387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
04-06 17:42:54.764: E/AndroidRuntime(12387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-06 17:42:54.764: E/AndroidRuntime(12387): at dalvik.system.NativeStart.main(Native Method)
04-06 17:42:54.764: E/AndroidRuntime(12387): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class android.widget.ListView
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.createView(LayoutInflater.java:620)
04-06 17:42:54.764: E/AndroidRuntime(12387): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
04-06 17:42:54.764: E/AndroidRuntime(12387): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:344)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.Activity.setContentView(Activity.java:1945)
04-06 17:42:54.764: E/AndroidRuntime(12387): at com.ascendapps.nexplay.PlayListActivity.onCreate(PlayListActivity.java:23)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.Activity.performCreate(Activity.java:5351)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
04-06 17:42:54.764: E/AndroidRuntime(12387): ... 11 more
04-06 17:42:54.764: E/AndroidRuntime(12387): Caused by: java.lang.reflect.InvocationTargetException
04-06 17:42:54.764: E/AndroidRuntime(12387): at java.lang.reflect.Constructor.constructNative(Native Method)
04-06 17:42:54.764: E/AndroidRuntime(12387): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.view.LayoutInflater.createView(LayoutInflater.java:594)
04-06 17:42:54.764: E/AndroidRuntime(12387): ... 24 more
04-06 17:42:54.764: E/AndroidRuntime(12387): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020009
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.content.res.Resources.loadDrawable(Resources.java:2126)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.widget.AbsListView.<init>(AbsListView.java:807)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.widget.ListView.<init>(ListView.java:146)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.widget.ListView.<init>(ListView.java:142)
04-06 17:42:54.764: E/AndroidRuntime(12387): ... 27 more
04-06 17:42:54.764: E/AndroidRuntime(12387): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #7: <item> tag requires a 'drawable' attribute or child tag defining a drawable
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:181)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
04-06 17:42:54.764: E/AndroidRuntime(12387): at android.content.res.Resources.loadDrawable(Resources.java:2122)
04-06 17:42:54.764: E/AndroidRuntime(12387): ... 31 more
04-06 17:42:56.674: I/Process(12387): Sending signal. PID: 12387 SIG: 9
请帮助我,我真的很想构建一个自己的音乐播放器,我尝试过搜索并尝试不同的东西,但从来没有成功过。
编辑:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selector style for listrow -->
<item
android:state_selected="false"
android:state_pressed="false"
android:color="#222222" />
<item android:state_pressed="true"
android:color="#d8d8d8" />
<item android:state_selected="true"
android:state_pressed="false"
android:color="#d8d8d8" />
</selector>
最佳答案
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020009
您在 res/drawable
下没有名为 list_selector.xml
的资源。检查并修复它。
编辑:
最后你有
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line 7: tag requires a 'drawable' attribute or child tag defining a drawable
您可能应该查看 list_selector.xml
,它表示项目标记需要一个缺少的可绘制属性。
失踪
<item
android:drawable="@drawable/yourdrawable"
你可以检查这个
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
编辑2:
Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list.
您需要在 playlist.xml
中使用 ID 如下的 ListView
<ListView android:id="@android:id/list"
引用文档
ListActivity has a default layout that consists of a single, full-screen list in the center of the screen. However, if you desire, you can customize the screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain a ListView object with the id "@android:id/list" (or list if it's in code
关于java - 调试 : android. view.InflateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22891678/