Использование exoplayer для создания приложения для потокового видео, но возникают некоторые ошибки - PullRequest
0 голосов
/ 19 июня 2020
• 1000 ...
 E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.dishanmdv.videostreamingoriginal, PID: 21041
        android.view.InflateException: Binary XML file line #23: Binary XML file line #23: Error inflating class com.google.android.exoplayer2.ui.PlayerView
        Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class com.google.android.exoplayer2.ui.PlayerView
        Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Constructor.newInstance0(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
            at android.view.LayoutInflater.createView(LayoutInflater.java:651)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:867)
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:870)
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:519)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
            at com.dishanmdv.videostreamingoriginal.ShowVideoActivity$1.onCreateViewHolder(ShowVideoActivity.java:55)
            at com.dishanmdv.videostreamingoriginal.ShowVideoActivity$1.onCreateViewHolder(ShowVideoActivity.java:44)
            at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
            at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
            at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
            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:4134)
            at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
            at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1897)
            at androidx.recyclerview.widget.RecyclerView$1.run(RecyclerView.java:414)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1029)
            at android.view.Choreographer.doCallbacks(Choreographer.java:841)
            at android.view.Choreographer.doFrame(Choreographer.java:769)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1015)
            at android.os.Handler.handleCallback(Handler.java:794)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:176)
            at android.app.ActivityThread.main(ActivityThread.java:6651)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
         Caused by: java.lang.BootstrapMethodError: Exception from call site #88 bootstrap method
            at com.google.android.exoplayer2.ui.PlayerControlView.<init>(PlayerControlView.java:348)
            at com.google.android.exoplayer2.ui.PlayerView.<init>(PlayerView.java:466)
            at com.google.android.exoplayer2.ui.PlayerView.<init>(PlayerView.java:316)
            at java.lang.reflect.Constructor.newInstance0(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:651) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:867) 
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:870) 
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:519) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
            at com.dishanmdv.videostreamingoriginal.ShowVideoActivity$1.onCreateViewHolder(ShowVideoActivity.java:55) 
            at com.dishanmdv.videostreamingoriginal.ShowVideoActivity$1.onCreateViewHolder(ShowVideoActivity.java:44) 
            at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078) 
            at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235) 
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) 
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) 
            at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) 
            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:4134) 
            at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851) 
            at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1897) 
            at androidx.recyclerview.widget.RecyclerView$1.run(RecyclerView.java:414) 
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1029) 
            at android.view.Choreographer.doCallbacks(Choreographer.java:841) 
            at android.view.Choreographer.doFrame(Choreographer.java:769) 
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1015) 
            at android.os.Handler.handleCallback(Handler.java:794) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:176) 
            at android.app.ActivityThread.main(ActivityThread.java:6651) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824) 
         Caused by: java.lang.NoClassDefFoundError: Invalid descriptor: abc_tint_btn_checkable.
            at com.google.android.exoplayer2.ui.PlayerControlView.<init>(PlayerControlView.java:348) 
            at com.google.android.exoplayer2.ui.PlayerView.<init>(PlayerView.java:466) 
            at com.google.android.exoplayer2.ui.PlayerView.<init>(PlayerView.java:316) 
            at java.lang.reflect.Constructor.newInstance0(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:651) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:867) 
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:870) 
            at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:519) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:427) 
            at com.dishanmdv.videostreamingoriginal.ShowVideoActivity$1.onCreateViewHolder(ShowVideoActivity.java:55) 
            at com.dishanmdv.videostreamingoriginal.ShowVideoActivity$1.onCreateViewHolder(ShowVideoActivity.java:44) 
            at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078) 
            at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235) 
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) 
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) 
            at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) 
            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:4134) 
            at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851) 
            at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1897) 
            at androidx.recyclerview.widget.RecyclerView$1.run(RecyclerView.java:414) 
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1029) 
            at android.view.Choreographer.doCallbacks(Choreographer.java:841) 
            at android.view.Choreographer.doFrame(Choreographer.java:769) 
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1015) 
            at android.os.Handler.handleCallback(Handler.java:794) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:176) 
            at android.app.ActivityThread.main(ActivityThread.java:6651) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

Ниже приведен код класса, в который я добавил макет inflater recyclerView .....

package com.dishanmdv.videostreamingoriginal;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class ShowVideoActivity extends AppCompatActivity {

    DatabaseReference databaseReference;
    RecyclerView recyclerView;
    FirebaseDatabase database;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_video);

        recyclerView = findViewById(R.id.recyclerView_ShowVideoID);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        database = FirebaseDatabase.getInstance();
        databaseReference = database.getReference("video");
    }

    @Override
    protected void onStart() {
        super.onStart();

        FirebaseRecyclerOptions<Member> options = new FirebaseRecyclerOptions.Builder<Member>()
                                            .setQuery(databaseReference,Member.class).build();

        FirebaseRecyclerAdapter<Member,ViewHolder> firebaseRecyclerAdapter =
                                      new FirebaseRecyclerAdapter<Member, ViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Member model) {

                holder.setExoplayer(getApplication(),model.getName(),model.getVideourl());
            }

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

                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);

                return new ViewHolder(view);
            }
        };

        firebaseRecyclerAdapter.startListening();
        recyclerView.setAdapter(firebaseRecyclerAdapter);
    }

}

Пожалуйста, дайте мне решение проблемы

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