Java 使用截击简单请求时的未知类

Java 使用截击简单请求时的未知类,java,android,android-volley,Java,Android,Android Volley,我在跟踪 这是我的代码,但出于某种原因,最后一行是queue.add(stringRequest);正在使用未知类出错 public class MainActivity extends ActionBarActivity { final TextView mTextView = (TextView)findViewById(R.id.text); @Override protected void onCreate(Bundle savedInstanceState) { supe

我在跟踪

这是我的代码,但出于某种原因,最后一行是queue.add(stringRequest);正在使用未知类出错

public class MainActivity extends ActionBarActivity {


final TextView mTextView = (TextView)findViewById(R.id.text);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    queue.add(stringRequest)
}

RequestQueue queue = Volley.newRequestQueue(this);
String url = "http://www.google.com";

StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
        new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        mTextView.setText("Response is: " + response.substring(0, 500));
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        mTextView.setText("That didnt work!");
    }
});
}
公共类MainActivity扩展了ActionBarActivity{
final TextView mTextView=(TextView)findviewbyd(R.id.text);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
添加(stringRequest)
}
RequestQueue=Volley.newRequestQueue(this);
字符串url=”http://www.google.com";
StringRequest StringRequest=新的StringRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
setText(“响应为:”+Response.substring(0500));
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
setText(“那没用!”);
}
});
}
你知道为什么会出错吗

下面是错误

Process: za.co.stillie.networktest, PID: 11113
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{za.co.stillie.networktest/za.co.stillie.networktest.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            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 android.app.Activity.findViewById(Activity.java:1884)
            at za.co.stillie.networktest.MainActivity.<init>(MainActivity.java:25)
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1208)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            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)
进程:za.co.stillie.networktest,PID:11113
java.lang.RuntimeException:无法实例化活动组件信息{za.co.stillie.networktest/za.co.stillie.networktest.MainActivity}:java.lang.NullPointerException
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
在android.app.ActivityThread.access$800(ActivityThread.java:135)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5001)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
在android.app.Activity.findviewbyd(Activity.java:1884)上
位于za.co.stillie.networktest.MainActivity。(MainActivity.java:25)
位于java.lang.Class.newInstanceImpl(本机方法)
位于java.lang.Class.newInstance(Class.java:1208)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1061)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
在android.app.ActivityThread.access$800(ActivityThread.java:135)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5001)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
在dalvik.system.NativeStart.main(本机方法)
上面的错误是我在代码中仍然存在的情况下尝试运行应用程序时遇到的错误


注意:我将queue.add(stringRequest)移动到onCreate方法中

似乎
queue.add(stringRequest)
在MainActivity中,但不在任何函数中

只需将
queue.add(stringRequest)
放入onCreate或将被调用的任何其他函数中

未知类
是因为Java将“queue.add(stringRequest)”作为变量处理,它不知道它属于哪个类。 您没有错误的堆栈跟踪,因为Java不允许您运行此代码

你提供的网站没有列出所有的代码,只是简单介绍一下

我没有足够的声誉来评论。。。 那么,您是否在mannifest中声明此活动以及网络权限

我想您应该在setContentView之后使用
findViewById

final TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTextView = (TextView)findViewById(R.id.text);
    queue.add(stringRequest);
}

似乎
queue.add(stringRequest)
在MainActivity中,但不在任何函数中

只需将
queue.add(stringRequest)
放入onCreate或将被调用的任何其他函数中

未知类
是因为Java将“queue.add(stringRequest)”作为变量处理,它不知道它属于哪个类。 您没有错误的堆栈跟踪,因为Java不允许您运行此代码

你提供的网站没有列出所有的代码,只是简单介绍一下

我没有足够的声誉来评论。。。 那么,您是否在mannifest中声明此活动以及网络权限

我想您应该在setContentView之后使用
findViewById

final TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTextView = (TextView)findViewById(R.id.text);
    queue.add(stringRequest);
}
在设置之前,无法启动textview或任何视图 contentview


好的……我发现了错误……您首先将stringrequest添加到队列,然后启动它……我已经更新了答案……检查它

public class MainActivity extends ActionBarActivity {

RequestQueue queue = Volley.newRequestQueue(this);
String url = "http://www.google.com";

//dont mean to do that...
//final TextView mTextView = (TextView)findViewById(R.id.text);
TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView)findViewById(R.id.text);

StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
    new Response.Listener<String>() {
@Override
public void onResponse(String response) {
    mTextView.setText("Response is: " + response.substring(0, 500));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
    mTextView.setText("That didnt work!");
}
});

queue.add(stringRequest);
}


}
公共类MainActivity扩展了ActionBarActivity{
RequestQueue=Volley.newRequestQueue(this);
字符串url=”http://www.google.com";
//我不想那样做。。。
//final TextView mTextView=(TextView)findviewbyd(R.id.text);
文本视图mTextView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView=(TextView)findviewbyd(R.id.text);
StringRequest StringRequest=新StringRequest