как исправить android .view.InflateException: двоичный файл XML строка файла # 16: ошибка раздувания класса null - PullRequest
0 голосов
/ 15 апреля 2020

Привет, я хочу получить строку с JSONArray от localhost и показать ее в обзоре переработчика. но это кру sh при запуске приложения. Моя ошибка - Ошибка надувания класса null. все хорошо . я не знаю, что я делаю.

мои ошибки:

04-15 14:19:30.183 4470-4470/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 4470
    android.view.InflateException: Binary XML file line #16: Error inflating class null
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at com.example.myapplication.adapter.JsonAdapter.onCreateViewHolder(JsonAdapter.java:30)
        at com.example.myapplication.adapter.JsonAdapter.onCreateViewHolder(JsonAdapter.java:18)
        at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6957)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6126)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6009)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6005)
        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2302)
        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4040)
        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3757)
        at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4310)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
        at android.view.View.layout(View.java:14817)
        at android.view.ViewGroup.layout(ViewGroup.java:4631)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2011)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1768)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1024)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5694)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
        at android.view.Choreographer.doCallbacks(Choreographer.java:574)
        at android.view.Choreographer.doFrame(Choreographer.java:544)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5019)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$Met

мой код адаптера утилитарного просмотра здесь:

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.myapplication.R;
import com.example.myapplication.app.aplication;

import java.util.List;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;


public class JsonAdapter extends RecyclerView.Adapter<JsonAdapter.MyviewHolder> {

    List<String> list;
    public JsonAdapter(List<String> list){

        this.list=list;
    }

    @NonNull
    @Override
    public MyviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view= LayoutInflater.from(aplication.context).inflate(R.layout.json_layout,parent,false);
        return new MyviewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyviewHolder holder, int position) {
    holder.txtshowjson.setText(list.get(position));
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public class MyviewHolder extends RecyclerView.ViewHolder {
        TextView txtshowjson;
        public MyviewHolder(@NonNull View itemView) {
            super(itemView);
            txtshowjson=itemView.findViewById(R.id.txtshowjson);

        }
    }
}

мой mainActtivity и json код доступа здесь :

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import cz.msebera.android.httpclient.Header;

import android.os.Bundle;

import com.example.myapplication.R;
import com.example.myapplication.adapter.JsonAdapter;
import com.example.myapplication.app.app;
import com.loopj.android.http.AsyncHttpResponseHandler;

import org.json.JSONArray;
import org.json.JSONException;

import java.util.ArrayList;
import java.util.List;

public class JSONArrayGetFromServer extends AppCompatActivity {
RecyclerView jsonrecycle;
List<String>list;
JsonAdapter jsonAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_jsonarray_get_from_server);
        jsonrecycle=findViewById(R.id.jsonrecycleee);
        list=new ArrayList<>();
        jsonAdapter=new JsonAdapter(list);
        jsonrecycle.setAdapter(jsonAdapter);
        jsonrecycle.setLayoutManager(new LinearLayoutManager(this));

        getData();
    }

    private void getData(){

        HttpConnectionAcyntasck.get("192.168.1.106/PhpProject1/7Learn/phpJsonArray.php", null, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                try {
                    parsingJson(new String(responseBody));
                } catch (JSONException e) {
                    app.l(e.toString());
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

            }
        });
    }

    private void parsingJson(String message) throws JSONException {
        list.clear();
        JSONArray jsonArray=new JSONArray(message);
        int len=jsonArray.length();
        for (int i=0;i<len;i++){

            list.add(jsonArray.getString(i));
        }
        jsonAdapter.notifyDataSetChanged();

    }

}

, пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...