正在运行android应用程序获取java.lang.NullPointerException

正在运行android应用程序获取java.lang.NullPointerException,java,android,json,android-intent,android-arrayadapter,Java,Android,Json,Android Intent,Android Arrayadapter,我不知道发生了什么,我无法运行我的应用程序。它所做的是从API中获取一些信息数据并在listview中列出,我认为我的ClientActivity有问题,但我不知道是什么 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android/com.android.MainActivity}: java.lang.NullPointerException at android.app.

我不知道发生了什么,我无法运行我的应用程序。它所做的是从API中获取一些信息数据并在listview中列出,我认为我的ClientActivity有问题,但我不知道是什么

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android/com.android.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            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 com.android.MainActivity.onCreate(MainActivity.java:40)**
            at android.app.Activity.performCreate(Activity.java:5248)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            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)
主要活动:

public class MainActivity extends SherlockFragmentActivity {

    private ViewPager mViewPager;
    private TabsAdapter mTabsAdapter;
    private ActionBar barra;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        mViewPager = new ViewPager(this);
        mViewPager.setId(R.id.pager);
        setContentView(mViewPager);


        mTabsAdapter = new TabsAdapter(this, mViewPager);
        **mTabsAdapter.addTab(barra.newTab().setIcon(R.drawable.clientes).setText(" Clientes"), ClienteActivity.class, null);**


        barra = getSupportActionBar();
        barra.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);




    }
    private static final int REFRESH = 1;
    private static final int SEARCH = 2;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.main, menu);

        menu.add(0, REFRESH, 0, "Refresh")
                .setIcon(R.drawable.ic_action_view_as_grid)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


        menu.add(0, SEARCH, 0, "Search")
                .setIcon(R.drawable.ic_action_search)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case REFRESH:

                return true;
            case SEARCH:
                // Do search
                return true;
            case R.id.add_item:
                this.dispatchSync();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }





    private void dispatchSync() {

        SincronizarTask mSincronizarTask = new SincronizarTask(this);
        mSincronizarTask.inicia();

    }


}
客户活动:

public class ClienteActivity extends SherlockFragment {


    public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_cliente, container, false);


        try {


            ClienteViewAdapter ad = new ClienteViewAdapter(this.getActivity(), R.layout.fragment_cliente_item);
            ListView lv = (ListView) view.findViewById(R.id.listaClientes);

            lv.setVerticalFadingEdgeEnabled(true);
            lv.setVerticalScrollBarEnabled(true);

            lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                   // TextView clienteId = (TextView) view.findViewById(R.id.clienteId);
                    TextView clienteNome = (TextView) view.findViewById(R.id.clienteNome);
                    TextView clienteTipoPessoa = (TextView) view.findViewById(R.id.clienteTipo);

                    Intent intent = new Intent(getActivity(), ContatosView.class);
                    //intent.putExtra("id_cliente", clienteId.getText()); // envia o id do cliente para a tela de detalhes
                    intent.putExtra("nome", clienteNome.getText());
                    intent.putExtra("tipo_pessoa", clienteTipoPessoa.getText());

                    startActivity(intent);

                }
            });

            lv.setAdapter(ad);

        } catch (Exception e) {
            new AlertDialog.Builder(getActivity()).setTitle("Erro").setMessage(e.getMessage()).setNeutralButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {

                }
            }).show();
        }




        return view;
    }



    private void gerarToast(CharSequence message) {
        int duration = Toast.LENGTH_LONG;
        Toast toast = Toast
                .makeText(getActivity(), message, duration);
        toast.show();
    }

}
公共类客户活动扩展了SherlockFragment{
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment\u客户,容器,假);
试一试{
ClientViewAdapter ad=新的ClientViewAdapter(this.getActivity(),R.layout.fragment\u cliente\u项);
ListView lv=(ListView)view.findViewById(R.id.listaClientes);
lv.setVerticalFadingEdgeEnabled(正确);
lv.setVerticalScrollBarEnabled(真);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//TextView clientId=(TextView)view.findViewById(R.id.clientId);
TextView clienteNome=(TextView)view.findViewById(R.id.clienteNome);
TextView clienteTipoPessoa=(TextView)view.findViewById(R.id.clienteTipo);
Intent Intent=新的Intent(getActivity(),ContatosView.class);
//intent.putExtra(“id_cliente”,cliented.getText());//envia o id do cliente para a tela de detalhes
intent.putExtra(“nome”,clienteNome.getText());
intent.putExtra(“tipo_pessoa”,clienteTipoPessoa.getText());
星触觉(意向);
}
});
低压设置适配器(ad);
}捕获(例外e){
新建AlertDialog.Builder(getActivity()).setTitle(“Erro”).setMessage(e.getMessage()).setNeutralButton(“确定”,新建DialogInterface.OnClickListener()){
@凌驾
公共void onClick(DialogInterface,inti){
}
}).show();
}
返回视图;
}
私有void gerarToast(字符序列消息){
int duration=Toast.LENGTH\u LONG;
吐司
.makeText(getActivity(),消息,持续时间);
toast.show();
}
}
适配器:

public class ClienteViewAdapter extends ArrayAdapter<ClientesModel> {

    private final LayoutInflater inflater;

    private final int resourceId;

    public ClienteViewAdapter(FragmentActivity context, int resource) {
        super(context, resource);
        this.inflater = LayoutInflater.from(context);
        this.resourceId = resource;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {

        ClientesModel cliente = getItem(position);

        view = inflater.inflate(resourceId, parent, false);

        //TextView tvId = (TextView) view.findViewById(R.id.txtTitle);
        TextView tvNome = (TextView) view.findViewById(R.id.clienteNome);
        TextView tvTipo = (TextView) view.findViewById(R.id.clienteTipo);

        //tvId.setText(String.valueOf(cliente.ge()));
        tvNome.setText(cliente.getNome());
        tvTipo.setText(cliente.getTipo_pessoa());

        return view;
    }

}
公共类ClientViewAdapter扩展了ArrayAdapter{
私人充气机;
私有最终int资源ID;
公共ClientViewAdapter(FragmentActivity上下文,int资源){
超级(上下文、资源);
this.inflater=layoutiner.from(上下文);
this.resourceId=资源;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
ClientsModel cliente=getItem(位置);
视图=充气器。充气(resourceId,父项,false);
//TextView tvId=(TextView)view.findViewById(R.id.txtTitle);
TextView tvNome=(TextView)view.findViewById(R.id.clienteNome);
TextView tvTipo=(TextView)view.findViewById(R.id.clienteTipo);
//setText(String.valueOf(cliente.ge());
tvNome.setText(client.getNome());
tvTipo.setText(client.getTipo_pessoa());
返回视图;
}
}
以及解析后的Json:

public class ClientRest {
    private RequestQueue mRequestQueue;
    private ArrayList<ClientesModel> arrNews ;
    public ArrayList<ClientesContatosModel> arrContatos ;
    private Activity context;


    public ClientRest(Activity ctx) {
        this.context = ctx;
    }

    public interface ClientesRestListener {
        public void clientesReceived(List<ClientesModel> clientes);
    }

    public final void getClientes(final ClientesRestListener listener) {

        String url = "http://192.168.1.1/api/api/client/index.php";

        // filtros

        final ProgressDialog pDialog = new ProgressDialog(this.context);
        pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        pDialog.setTitle("Sincronizando");
        pDialog.setMessage("Aguarde...");
        pDialog.show();
        arrNews = new ArrayList<ClientesModel>();
        arrContatos = new ArrayList<ClientesContatosModel>();

        mRequestQueue = Volley.newRequestQueue(this.context);

        JsonObjectRequest mJsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                List<ClientesModel> clientes = null;
                try {
                    clientes = parseJSON(response);
                    pDialog.hide();
                } catch (JSONException e) {
                    e.printStackTrace();

                }
                listener.clientesReceived(clientes);
            }

        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                if (pDialog.isShowing()) {
                    pDialog.hide();
                }
                error.printStackTrace();
            }

        }
        ) 

        mRequestQueue.add(mJsonObjectRequest);
    }

    private List<ClientesModel> parseJSON(JSONObject json) throws JSONException {
        try {


            JSONArray dados = json.getJSONArray("dados");

            for (int i = 0; i < dados.length(); i++) {

                JSONObject item = dados.getJSONObject(i);


                ClientesModel mClientesModel = new ClientesModel();
                ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();

                /* cadastra os dados necessários no objeto no modelo */
                mClientesModel.setId(item.optInt("id"));
                mClientesModel.setNome(item.optString("nome"));
                mClientesModel.setTipo_pessoa(item.optString("tipo_pessoa"));
                mClientesModel.setInformacoes_adicionais(item.optString("informacoes_adicionais"));
                mClientesModel.setCpf(item.optString("cpf"));
                mClientesModel.setCnpj(item.optString("cnpj"));
                JSONArray contatos = item.getJSONArray("contatos");
                for (int j = 0; j < contatos.length(); j++) {
                    JSONObject data = contatos.getJSONObject(j);

                    mClientesContatoModel.setNome(data.optString("nome"));

                    mClientesContatoModel.setCargo(data.optString("cargo"));

                }

                arrNews.add(mClientesModel);
                arrContatos.add(mClientesContatoModel);
            }


        } catch (Exception e) {
            e.printStackTrace();
        }
        return arrNews;
    }


}
公共类客户端列表{
私有请求队列mRequestQueue;
私人ArrayList arrNews;
公共ArrayList arrContatos;
私人活动语境;
公共客户端(活动ctx){
this.context=ctx;
}
公共接口客户端列表器{
收到的公共无效客户(列出客户);
}
public final void getclients(final clientsrestlistener侦听器){
字符串url=”http://192.168.1.1/api/api/client/index.php";
//过滤器
final ProgressDialog pDialog=新建ProgressDialog(this.context);
pDialog.setProgressStyle(ProgressDialog.STYLE_微调器);
pDialog.setTitle(“Sincronizando”);
pDialog.setMessage(“Aguarde…”);
pDialog.show();
arrNews=新的ArrayList();
arrContatos=newarraylist();
mRequestQueue=Volley.newRequestQueue(this.context);
JsonObjectRequest mJsonObjectRequest=新JsonObjectRequest(Request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
列出客户=空;
试一试{
clientes=parseJSON(响应);
pDialog.hide();
}捕获(JSONException e){
e、 printStackTrace();
}
侦听器。客户已接收(客户);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
if(pDialog.isShowing()){
pDialog.hide();
}
错误。printStackTrace();
}
}
) 
mRequestQueue.add(mJsonObjectRequest);
}
私有列表parseJSON(JSONObject json)抛出JSONException{
试一试{
JSONArray dados=json.getJSONArray(“dados”);
对于(int i=0;iprivate ActionBar barra;
 barra = getActionBar()
 barra = getSupportActionBar()
    **mTabsAdapter.addTab(barra.newTab().setIcon(R.drawable.clientes).setText(" Clientes"), ClienteActivity.class, null);**
barra = getSupportActionBar();
barra.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
barra = getSupportActionBar();
barra.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
**mTabsAdapter.addTab(barra.newTab().setIcon(R.drawable.clientes).setText(" Clientes"), ClienteActivity.class, null);**
    mViewPager = new ViewPager(this);
    mViewPager.setId(R.id.pager);
    setContentView(mViewPager);


    mTabsAdapter = new TabsAdapter(this, mViewPager);
    **mTabsAdapter.addTab(barra.newTab().setIcon(R.drawable.clientes).setText("   Clientes"), ClienteActivity.class, null);**


    barra = getSupportActionBar();
    barra.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    mViewPager = new ViewPager(this);
    mViewPager.setId(R.id.pager);
    setContentView(mViewPager);

    barra = getSupportActionBar();
    barra.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    mTabsAdapter = new TabsAdapter(this, mViewPager);
    **mTabsAdapter.addTab(barra.newTab().setIcon(R.drawable.clientes).setText(" Clientes"), ClienteActivity.class, null);**