Java 编译代码时出错

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

我已收到来自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: 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行是什么?那么,什么是空的?谢谢你的及时回复。启动活动时会发生此错误。换句话说,当调用此活动时,我意外地收到一个意外错误。这两个问题都没有回答。日志准确地告诉您错误在哪里;我们不必猜测。谢谢你的及时回复。我指的是另一个列表视图。