Java 编译代码时出错
我已收到来自logcat的以下消息。我已经清理了我的项目,并且已经验证了清单中引用了该活动。我相信这可能是活动代码的一个潜在问题。我在这里包括了logcat消息和活动代码 我也四处寻找可能的解决办法,但迄今为止我的尝试都没有成功 提前谢谢 Logcat消息:Java 编译代码时出错,java,android,json,android-layout,android-activity,Java,Android,Json,Android Layout,Android Activity,我已收到来自logcat的以下消息。我已经清理了我的项目,并且已经验证了清单中引用了该活动。我相信这可能是活动代码的一个潜在问题。我在这里包括了logcat消息和活动代码 我也四处寻找可能的解决办法,但迄今为止我的尝试都没有成功 提前谢谢 Logcat消息: 08-04 20:00:30.492: E/AndroidRuntime(1481): FATAL EXCEPTION: main 08-04 20:00:30.492: E/AndroidRuntime(1481): Process: c
08-04 20:00:30.492: E/AndroidRuntime(1481): FATAL EXCEPTION: main
08-04 20:00:30.492: E/AndroidRuntime(1481): Process: com.dooba.beta, PID: 1481
08-04 20:00:30.492: E/AndroidRuntime(1481): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dooba.beta/com.dooba.beta.EventsActivity}: java.lang.NullPointerException
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.ActivityThread.access$800(ActivityThread.java:135)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.os.Handler.dispatchMessage(Handler.java:102)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.os.Looper.loop(Looper.java:136)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.ActivityThread.main(ActivityThread.java:5017)
08-04 20:00:30.492: E/AndroidRuntime(1481): at java.lang.reflect.Method.invokeNative(Native Method)
08-04 20:00:30.492: E/AndroidRuntime(1481): at java.lang.reflect.Method.invoke(Method.java:515)
08-04 20:00:30.492: E/AndroidRuntime(1481): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-04 20:00:30.492: E/AndroidRuntime(1481): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-04 20:00:30.492: E/AndroidRuntime(1481): at dalvik.system.NativeStart.main(Native Method)
08-04 20:00:30.492: E/AndroidRuntime(1481): Caused by: java.lang.NullPointerException
08-04 20:00:30.492: E/AndroidRuntime(1481): at com.dooba.beta.EventsActivity.onCreate(EventsActivity.java:54)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.Activity.performCreate(Activity.java:5231)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-04 20:00:30.492: E/AndroidRuntime(1481): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
08-04 20:00:30.492: E/AndroidRuntime(1481): ... 11 more
活动代码:
public class EventsActivity extends Activity{
private static final String URL_WEB_SERVICE = "http://dooba.ca/analytics/ed.php";
private GridView gv;
private ArrayList<Events_List> container;
private ArrayList<Events_List> items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.events_list_layout);
gv = (GridView) findViewById(R.id.gridview);
container = new ArrayList<Events_List>();
//download JSON
listDownload();
ListView s = (ListView) findViewById(R.id.listViewSingleClick);
s.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(EventsActivity.this,EventSingleItemActivity.class);
intent.putExtra("id_item", id);//this is id of the item that you said it. for example id:5544323 from your JSON web service
intent.putExtra("position", position); //order position in listview 0-1-2-3...
startActivity(intent); //start Activity
}
});
}
public void listDownload(){
RequestQueue volley = Volley.newRequestQueue(this);
JsonObjectRequest json = new JsonObjectRequest(Method.GET, URL_WEB_SERVICE, null, ResponseListener(), ErrorListener());
volley.add(json);
}
private Response.Listener<JSONObject> ResponseListener() {
return new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
//your JSON Array
JSONArray array = response.getJSONArray("list_item");
for(int i = 0; i < array.length(); i++){
container.add(convertirAnuncio(array.getJSONObject(i)));
}
} catch (JSONException e) {
e.printStackTrace();
}
gv.setAdapter(new AdapterEvents(getApplicationContext(),container));
}
};
};
private Response.ErrorListener ErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) { }
};
}
//object JSON
private final Events_List convertirAnuncio(JSONObject obj) throws JSONException {
long id = obj.getLong("id"); //id
String list_item_name = obj.getString("list_item_name");
String list_item_description = obj.getString("list_item_description");
String list_item_price = obj.getString("list_item_price");
Uri uri = Uri.parse(obj.getString("list_item_bac"));
return new Events_List(id,list_item_name,list_item_description,list_item_price, uri);
}
}
公共类事件活动扩展活动{
私有静态最终字符串URL\u WEB\u服务=”http://dooba.ca/analytics/ed.php";
私有网格视图gv;
私有ArrayList容器;
私有ArrayList项;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.events\u list\u布局);
gv=(GridView)findViewById(R.id.GridView);
container=newarraylist();
//下载JSON
listDownload();
ListView s=(ListView)findViewById(R.id.listViewSingleClick);
s、 setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(EventsActivity.this、EventSingleItemActivity.class);
intent.putExtra(“id_item”,id);//这是您所说的项目的id。例如,JSON web服务中的id:5544323
intent.putExtra(“position”,position);//在listview 0-1-2-3中排序位置。。。
开始活动(意图);//开始活动
}
});
}
公开作废列表下载(){
RequestQueue-volley=volley.newRequestQueue(this);
JsonObjectRequest json=新的JsonObjectRequest(Method.GET,URL\u WEB\u服务,null,ResponseListener(),ErrorListener());
add(json);
}
private Response.Listener ResponseListener(){
返回新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
//您的JSON数组
JSONArray数组=response.getJSONArray(“列表项”);
对于(int i=0;i
转到EventsActivity.java
中代码的第54行,检查您使用的引用
我强烈怀疑第54行是第二行:
ListView s = (ListView) findViewById(R.id.listViewSingleClick);
s.setOnItemClickListener(new OnItemClickListener(){..}
这意味着
findViewById
没有找到listViewSingleClick
,这通常意味着您没有在事件列表\u布局
布局XML文件中定义此ID。进入XML文件,确保定义了id为listViewSingleClick
的元素。I不久前,我犯了一个愚蠢的错误,在清单文件的活动名称中包含“.”。既然你已经发布了清单文件,我只是做个假设。你能检查一下情况是否如此吗
<activity
android:name=".EventsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.ALTERNATIVE" />
</intent-filter>
</activity>
第54行是什么?那么,什么是空的?谢谢你的及时回复。启动活动时会发生此错误。换句话说,当调用此活动时,我意外地收到一个意外错误。这两个问题都没有回答。日志准确地告诉您错误在哪里;我们不必猜测。谢谢你的及时回复。我指的是另一个列表视图。