解决方案 »

  1.   

    NullPointerException空指针是说你控件没有绑定到ID,你把所有红色贴出来看下,或者自己debug下就知道了,,,
      

  2.   


    我就是用的debug看到exception的内容的。控件没有帮到内容,是空指针,我知道,可是不知道怎么解决。请教你……
      

  3.   

    首先,你定义的控件是否在 bmain.xml里,其次,你的bmain.xml是放在哪个资源文件夹下,有时可能跟测试机对应的dpi资源目录下,你没有定义这些控件
      

  4.   


    bmain.xml在res的layout里面。
    前两个方法
    InitImageView();
    InitButtonView();
    都能通过,只有InitViewPager();无法通过。我定义的控件在bmain里面都有。
      

  5.   


    bmain.xml在res的layout里面。
    前两个方法
    InitImageView();
    InitButtonView();
    都能通过,只有InitViewPager();无法通过。我定义的控件在bmain里面都有。是哪句空指针呢?贴完整的log
      

  6.   


    bmain.xml在res的layout里面。
    前两个方法
    InitImageView();
    InitButtonView();
    都能通过,只有InitViewPager();无法通过。我定义的控件在bmain里面都有。是哪句空指针呢?贴完整的log
    07-22 10:19:17.697: E/AndroidRuntime(781): FATAL EXCEPTION: main07-22 10:19:17.697: E/AndroidRuntime(781): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andyidea.tabdemo/com.andyidea.tabdemo.BActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andyidea.tabdemo/com.andyidea.tabdemo.Item_java}: java.lang.NullPointerException07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:1656)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:676)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.TabHost.setCurrentTab(TabHost.java:345)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.TabHost.setCurrentTabByTag(TabHost.java:282)07-22 10:19:17.697: E/AndroidRuntime(781):  at com.andyidea.tabdemo.MainTabActivity.onCheckedChanged(MainTabActivity.java:58)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.CompoundButton.setChecked(CompoundButton.java:124)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.CompoundButton.toggle(CompoundButton.java:86)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.RadioButton.toggle(RadioButton.java:72)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.widget.CompoundButton.performClick(CompoundButton.java:98)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.view.View$PerformClick.run(View.java:11934)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.os.Handler.handleCallback(Handler.java:587)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.os.Handler.dispatchMessage(Handler.java:92)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.os.Looper.loop(Looper.java:132)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.main(ActivityThread.java:4123)07-22 10:19:17.697: E/AndroidRuntime(781):  at java.lang.reflect.Method.invokeNative(Native Method)07-22 10:19:17.697: E/AndroidRuntime(781):  at java.lang.reflect.Method.invoke(Method.java:491)07-22 10:19:17.697: E/AndroidRuntime(781):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)07-22 10:19:17.697: E/AndroidRuntime(781):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)07-22 10:19:17.697: E/AndroidRuntime(781):  at dalvik.system.NativeStart.main(Native Method)07-22 10:19:17.697: E/AndroidRuntime(781): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.andyidea.tabdemo/com.andyidea.tabdemo.Item_java}: java.lang.NullPointerException07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:1656)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)07-22 10:19:17.697: E/AndroidRuntime(781):  at com.andyidea.tabdemo.BActivity.InitViewPager(BActivity.java:44)07-22 10:19:17.697: E/AndroidRuntime(781):  at com.andyidea.tabdemo.BActivity.onCreate(BActivity.java:39)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.Activity.performCreate(Activity.java:4397)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)07-22 10:19:17.697: E/AndroidRuntime(781):  ... 21 more07-22 10:19:17.697: E/AndroidRuntime(781): Caused by: java.lang.NullPointerException07-22 10:19:17.697: E/AndroidRuntime(781):  at com.andyidea.tabdemo.Item_java.onCreate(Item_java.java:77)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.Activity.performCreate(Activity.java:4397)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)07-22 10:19:17.697: E/AndroidRuntime(781):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779)07-22 10:19:17.697: E/AndroidRuntime(781):  ... 29 more这些,能看清吗?不行我就截图
      

  7.   

     问题简单了 回答的就是多啊   贴出完整 log 日志信息 把红色的部分全复制上来
      

  8.   

     com.andyidea.tabdemo.Item_java.onCreate(Item_java.java:77) 
    在 Item_java 的 77 行 出现的问题  什么代码啊 这个 Item_java 类的代码 贴下
      

  9.   


    public class Item_java extends ActivityGroup{
    static TextView tvtext;
    static TextView tvjiage;
    static TextView tvliulanrenshu;
    static LinearLayout linearlo;


    private AsyncImageLoader loader = new AsyncImageLoader();
    private static String URL=DBUtil.getURL();
    private static String NAMESPACE=DBUtil.getNAMESPACE();
    //调用方法名
    private static String METHOD_NAME="SelectVideoByType ";
    private static String SOAP_ACTION=NAMESPACE+METHOD_NAME;

    private static int[] javatexta={R.id.javatext1,R.id.javatext2,R.id.javatext3,R.id.javatext4,
    R.id.javatext5,R.id.javatext6,R.id.javatext7,R.id.javatext8,R.id.javatext9,R.id.javatext10,
    R.id.javatext11,R.id.javatext12,R.id.javatext13,R.id.javatext14,R.id.javatext15};


    private static int[] javapica={R.id.javapic1,R.id.javapic2,R.id.javapic3,R.id.javapic4,R.id.javapic5,
    R.id.javapic6,R.id.javapic7,R.id.javapic8,R.id.javapic9,R.id.javapic10,R.id.javapic11,
    R.id.javapic12,R.id.javapic13,R.id.javapic14,R.id.javapic15};


    private static int[] javajiagea={R.id.javajiage1,R.id.javajiage2,R.id.javajiage3,R.id.javajiage4,
    R.id.javajiage5,R.id.javajiage6,R.id.javajiage7,R.id.javajiage8,R.id.javajiage9,R.id.javajiage10,
    R.id.javajiage11,R.id.javajiage12,R.id.javajiage13,R.id.javajiage14,R.id.javajiage15};


    private static int[] javaa={0,R.id.java2,R.id.java3,R.id.java4,R.id.java5,
    R.id.java6,R.id.java7,R.id.java8,R.id.java9,R.id.java10,R.id.java11,
    R.id.java12,R.id.java13,R.id.java14,R.id.java15};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.item_java);

    for(int x=0;x < 10;x++)
    {
    String[] java=getVideoJSON("", "Java技术",x);
    if(java[x]==null)
    break;
    else 
    {
    if(x==0)
    {
    tvliulanrenshu=(TextView)this.findViewById(R.id.dotnetliulanrenshu1);
    tvliulanrenshu.setText(java[3]+"人");
    tvtext=(TextView)findViewById(javatexta[x]);
    tvjiage=(TextView)findViewById(javajiagea[x]);
    tvtext.setText(java[0]);
    tvjiage.setText(java[1]+"元");
    }
    else 
    {
    linearlo=(LinearLayout)this.findViewById(javaa[x]);
    linearlo.setVisibility(View.VISIBLE);
    loadImage("http://192.168.1.112:8001/" + java[2],javapica[x]);
    tvtext=(TextView)this.findViewById(javatexta[x]);
    tvjiage=(TextView)this.findViewById(javajiagea[x]);
    tvtext.setText(java[0]);
    tvjiage.setText(java[1]+"元");

    }
    }

    }


    public static String[] getVideoJSON(String strUPhone,String strVD,int index)
    {
    String[] str=null;
    try {

    SoapObject rpc=new SoapObject(NAMESPACE, METHOD_NAME);
    // 设置调用方法的参数值,如果没有参数,可以省略,但是我们一般都有参数的
    rpc.addProperty("UPhone", strUPhone);
    rpc.addProperty("VD", strVD);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.bodyOut = rpc;
    envelope.dotNet = true;
    envelope.setOutputSoapObject(rpc);

    HttpTransportSE ht=new HttpTransportSE(URL);
    ht.debug=true;
    ht.call(SOAP_ACTION, envelope);

    SoapObject detail=(SoapObject) envelope.getResponse();
    System.out.println("detail" + detail);

    str=JsonToString(detail,index);
    } catch (Exception e) {
    e.printStackTrace();
    }

    return str;

    }


    @SuppressWarnings("null")
    public static String[] JsonToString(SoapObject detail,int index) throws UnsupportedEncodingException 
    {
    String[] namepricepic={"","","",""};
    try {
    String strJson=detail.getProperty(index).toString();
    JSONObject dataJson=new JSONObject(strJson);
    JSONArray tbVideo=dataJson.getJSONArray("tbVideo"); JSONObject info=tbVideo.getJSONObject(index);
    namepricepic[0]=info.getString("VideoName");
    namepricepic[1]=info.getString("VideoPrice");
    namepricepic[2]=info.getString("VideoPic");
    namepricepic[3]=info.getString("VideoPeople");

    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    return namepricepic;
    }


    //url:下载图片的url
    //id:ImageView控件的id
    private void loadImage(final String url, final int id) {
    // TODO Auto-generated method stub
    //如果缓存过就会从缓存中取出图像,ImageCallback接口中方法也不会被执行
    ImageView imageView = (ImageView) findViewById(id);
    CallbackImpl callbackImpl = new CallbackImpl(imageView);
    Drawable cacheImage = loader.loadDrawable(url, callbackImpl);
    if(cacheImage!=null){
    imageView.setImageDrawable(cacheImage);
    }
    }
    }
      

  10.   


    package com.andyidea.tabdemo;import java.io.UnsupportedEncodingException;import org.json.JSONArray;
    import org.json.JSONObject;
    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.HttpTransportSE;import com.andyidea.tabdemo.AsyncImageLoader;
    import com.andyidea.tabdemo.CallbackImpl;
    import com.andyidea.tabdemo.R;
    import com.studyonline.connsoap.DBUtil;import android.app.ActivityGroup;
    import android.graphics.drawable.Drawable;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;public class Item_java extends ActivityGroup{
    static TextView tvtext;
    static TextView tvjiage;
    static TextView tvliulanrenshu;
    static LinearLayout linearlo;


    private AsyncImageLoader loader = new AsyncImageLoader();
    private static String URL=DBUtil.getURL();
    private static String NAMESPACE=DBUtil.getNAMESPACE();
    //调用方法名
    private static String METHOD_NAME="SelectVideoByType ";
    private static String SOAP_ACTION=NAMESPACE+METHOD_NAME;

    private static int[] javatexta={R.id.javatext1,R.id.javatext2,R.id.javatext3,R.id.javatext4,
    R.id.javatext5,R.id.javatext6,R.id.javatext7,R.id.javatext8,R.id.javatext9,R.id.javatext10,
    R.id.javatext11,R.id.javatext12,R.id.javatext13,R.id.javatext14,R.id.javatext15};


    private static int[] javapica={R.id.javapic1,R.id.javapic2,R.id.javapic3,R.id.javapic4,R.id.javapic5,
    R.id.javapic6,R.id.javapic7,R.id.javapic8,R.id.javapic9,R.id.javapic10,R.id.javapic11,
    R.id.javapic12,R.id.javapic13,R.id.javapic14,R.id.javapic15};


    private static int[] javajiagea={R.id.javajiage1,R.id.javajiage2,R.id.javajiage3,R.id.javajiage4,
    R.id.javajiage5,R.id.javajiage6,R.id.javajiage7,R.id.javajiage8,R.id.javajiage9,R.id.javajiage10,
    R.id.javajiage11,R.id.javajiage12,R.id.javajiage13,R.id.javajiage14,R.id.javajiage15};


    private static int[] javaa={0,R.id.java2,R.id.java3,R.id.java4,R.id.java5,
    R.id.java6,R.id.java7,R.id.java8,R.id.java9,R.id.java10,R.id.java11,
    R.id.java12,R.id.java13,R.id.java14,R.id.java15};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.item_java);

    for(int x=0;x < 10;x++)
    {
    String[] java=getVideoJSON("", "Java技术",x);
    if(java[x]==null)
    break;
    else 
    {
    if(x==0)
    {
    tvliulanrenshu=(TextView)this.findViewById(R.id.dotnetliulanrenshu1);
    tvliulanrenshu.setText(java[3]+"人");
    tvtext=(TextView)findViewById(javatexta[x]);
    tvjiage=(TextView)findViewById(javajiagea[x]);
    tvtext.setText(java[0]);
    tvjiage.setText(java[1]+"元");
    }
    else 
    {
    linearlo=(LinearLayout)this.findViewById(javaa[x]);
    linearlo.setVisibility(View.VISIBLE);
    loadImage("http://192.168.1.112:8001/" + java[2],javapica[x]);
    tvtext=(TextView)this.findViewById(javatexta[x]);
    tvjiage=(TextView)this.findViewById(javajiagea[x]);
    tvtext.setText(java[0]);
    tvjiage.setText(java[1]+"元");

    }
    }

    }


    public static String[] getVideoJSON(String strUPhone,String strVD,int index)
    {
    String[] str=null;
    try {

    SoapObject rpc=new SoapObject(NAMESPACE, METHOD_NAME);
    // 设置调用方法的参数值,如果没有参数,可以省略,但是我们一般都有参数的
    rpc.addProperty("UPhone", strUPhone);
    rpc.addProperty("VD", strVD);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.bodyOut = rpc;
    envelope.dotNet = true;
    envelope.setOutputSoapObject(rpc);

    HttpTransportSE ht=new HttpTransportSE(URL);
    ht.debug=true;
    ht.call(SOAP_ACTION, envelope);

    SoapObject detail=(SoapObject) envelope.getResponse();
    System.out.println("detail" + detail);

    str=JsonToString(detail,index);
    } catch (Exception e) {
    e.printStackTrace();
    }

    return str;

    }


    @SuppressWarnings("null")
    public static String[] JsonToString(SoapObject detail,int index) throws UnsupportedEncodingException 
    {
    String[] namepricepic={"","","",""};
    try {
    String strJson=detail.getProperty(index).toString();
    JSONObject dataJson=new JSONObject(strJson);
    JSONArray tbVideo=dataJson.getJSONArray("tbVideo"); JSONObject info=tbVideo.getJSONObject(index);
    namepricepic[0]=info.getString("VideoName");
    namepricepic[1]=info.getString("VideoPrice");
    namepricepic[2]=info.getString("VideoPic");
    namepricepic[3]=info.getString("VideoPeople");

    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    return namepricepic;
    }


    //url:下载图片的url
    //id:ImageView控件的id
    private void loadImage(final String url, final int id) {
    // TODO Auto-generated method stub
    //如果缓存过就会从缓存中取出图像,ImageCallback接口中方法也不会被执行
    ImageView imageView = (ImageView) findViewById(id);
    CallbackImpl callbackImpl = new CallbackImpl(imageView);
    Drawable cacheImage = loader.loadDrawable(url, callbackImpl);
    if(cacheImage!=null){
    imageView.setImageDrawable(cacheImage);
    }
    }
    }
    看这个完整的吧。上面那个是把import 缩去了
      

  11.   


    我不知道……我看上面有名字,就全选上了…………我是小白。第三天用csdn
      

  12.   

    你这里还是debug看下哪个控件没有ID咯,因为你实例化了它所以这里处错误的话BA会报错,,,
      

  13.   


    我的这个构造是这样的:    一个大页面里包含着一个小页面,这个小页面又包含着四个更小一层的页面。这四个更小一层的页面里面的语句也是打断点debug?我调试的时候无法进到这四个更小页面的调试里。只能在中间一层页面调试。
      

  14.   


    我不知道……我看上面有名字,就全选上了…………我是小白。第三天用csdn小白都会用viewgroup了,碉堡的节奏啊,我身为版主都不会,面壁思过去了,,,
      

  15.   


    我不知道……我看上面有名字,就全选上了…………我是小白。第三天用csdn小白都会用viewgroup了,碉堡的节奏啊,我身为版主都不会,面壁思过去了,,,版主会用 ctrl+c  ctrl+v 吗?
      

  16.   


    我的这个构造是这样的:    一个大页面里包含着一个小页面,这个小页面又包含着四个更小一层的页面。这四个更小一层的页面里面的语句也是打断点debug?我调试的时候无法进到这四个更小页面的调试里。只能在中间一层页面调试。oncreate那里肯定可以debug到,因为你再上一个父viewgroup的实例化这个activity,它就有了生命周期,这就是tabhost实现原理呗,,,
      

  17.   


    我的这个构造是这样的:    一个大页面里包含着一个小页面,这个小页面又包含着四个更小一层的页面。这四个更小一层的页面里面的语句也是打断点debug?我调试的时候无法进到这四个更小页面的调试里。只能在中间一层页面调试。oncreate那里肯定可以debug到,因为你再上一个父viewgroup的实例化这个activity,它就有了生命周期,这就是tabhost实现原理呗,,,哇~我弄到了,是tvliulanrenshu这个变量没有赋值,是空指针。
    tvliulanrenshu=(TextView)this.findViewById(R.id.dotnetliulanrenshu1);
    这句话有错吧。用this不行?
      

  18.   

    最好写成activity.this,你看下R.id.dotnetliulanrenshu1是否有值