ошибка setContentView в активити yandex mapKit

Рейтинг: 0Ответов: 0Опубликовано: 15.02.2023

Делал карту в основной активити, решил переместить ее в фрагмент, код вроде простой, но выдет ошибку сет контент вью. Буду признателен если поможете

Активити

public class HomeActivity extends AppCompatActivity  {
    private AppBarConfiguration mAppBarConfiguration;
    private ActivityMainBinding binding;
    private final Point TARGET_LOCATION = new Point(59.945933, 30.320045);

    private int REQUEST_CODE_PERMISSION_INTERNET = 1;
    private static final int PERMISSIONS_REQUEST_FINE_LOCATION = 1;
    private UserLocationLayer userLocationLayer;
    private Fragment fragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        peremissionInternet();
        requestLocationPermission();

        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_home);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        setSupportActionBar(binding.appBarMain.toolbar);
        binding.appBarMain.fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        DrawerLayout drawer = binding.drawerLayout;
        NavigationView navigationView = binding.navView;
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow)
                .setOpenableLayout(drawer)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);
        NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
        NavigationUI.setupWithNavController(navigationView, navController);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onSupportNavigateUp() {
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);
        return NavigationUI.navigateUp(navController, mAppBarConfiguration)
                || super.onSupportNavigateUp();
    }

    private void requestLocationPermission() {
        if (ContextCompat.checkSelfPermission(this,
                "android.permission.ACCESS_FINE_LOCATION")
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{"android.permission.ACCESS_FINE_LOCATION"},
                    PERMISSIONS_REQUEST_FINE_LOCATION);
        }
    }

    private void peremissionInternet(){
        if (ContextCompat.checkSelfPermission(this,
                "android.permission.INTERNET")
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{"android.permission.INTERNET"},
                    REQUEST_CODE_PERMISSION_INTERNET);
        }
    }



}

Фрагмент

public class HomeFragment extends Fragment {

    private FragmentHomeBinding binding;
    private final String MAPKIT_API_KEY = "бла-бла-бла";
    private MapView mapView;


    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        MapKitFactory.setApiKey(MAPKIT_API_KEY);
        MapKitFactory.initialize(binding.getRoot().getContext());
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        mapView = view.findViewById(R.id.mapview);
        mapView.getMap().setRotateGesturesEnabled(false);
        mapView.getMap().move(new CameraPosition(new Point(0, 0), 14, 0, 0));


        LinearLayout llBottomSheet = view.findViewById(R.id.bottom_sheet);
        FrameLayout tp = view.findViewById(R.id.topPanel);
        FrameLayout bp = view.findViewById(R.id.bp);
        Button button = view.findViewById(R.id.button);

        BottomSheetBehavior<LinearLayout> bottomSheetBehavior = BottomSheetBehavior.from(llBottomSheet);
        bottomSheetBehavior.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
            @Override
            public void onStateChanged(@NonNull View bottomSheet, int newState) {
                // этот код скрывает кнопку сразу же
                // и отображает после того как нижний экран полностью свернется
                if (BottomSheetBehavior.STATE_EXPANDED == newState) {
                    tp.setVisibility(View.GONE);
                } else if (BottomSheetBehavior.STATE_COLLAPSED == newState) {
                    tp.setVisibility(View.VISIBLE);
                }

                bp.animate().alpha(1).setDuration(300).start();
            }

            @Override
            public void onSlide(@NonNull View bottomSheet, float slideOffset) {
                if(tp.getVisibility() == View.GONE){
                    tp.setVisibility(View.VISIBLE);
                }
                tp.animate().alpha(1 - slideOffset).setDuration(0).start();
                bp.animate().alpha(1 - slideOffset).setDuration(0).start();
            }
        });
    }

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

        HomeViewModel homeViewModel =
                new ViewModelProvider(this).get(HomeViewModel.class);

        binding = FragmentHomeBinding.inflate(inflater, container, false);
        View root = binding.getRoot();

        final TextView textView = binding.textHome;
        homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
        return root;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        binding = null;
    }

    @Override
    public void onStop() {
        mapView.onStop();
        MapKitFactory.getInstance().onStop();
        super.onStop();
    }

    @Override
    public void onStart() {
        super.onStart();
        MapKitFactory.getInstance().onStart();
        mapView.onStart();
    }
}

стак трейс

FATAL EXCEPTION: main
                                                                                                    Process: com.example.taxi_full, PID: 17909
                                                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.taxi_full/com.example.taxi_full.HomeActivity}: android.view.InflateException: Binary XML file line #19 in com.example.taxi_full:layout/fragment_home: Binary XML file line #19 in com.example.taxi_full:layout/fragment_home: Error inflating class com.yandex.mapkit.mapview.MapView
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3785)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:106)
                                                                                                        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
                                                                                                        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2327)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:211)
                                                                                                        at android.os.Looper.loop(Looper.java:300)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8285)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)
                                                                                                    Caused by: android.view.InflateException: Binary XML file line #19 in com.example.taxi_full:layout/fragment_home: Binary XML file line #19 in com.example.taxi_full:layout/fragment_home: Error inflating class com.yandex.mapkit.mapview.MapView
                                                                                                    Caused by: android.view.InflateException: Binary XML file line #19 in com.example.taxi_full:layout/fragment_home: Error inflating class com.yandex.mapkit.mapview.MapView
                                                                                                    Caused by: java.lang.reflect.InvocationTargetException
                                                                                                        at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                                                                                                        at android.view.LayoutInflater.createView(LayoutInflater.java:881)
                                                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1037)
                                                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:988)
                                                                                                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1167)
                                                                                                        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1128)
                                                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:709)
                                                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:547)
                                                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:485)
                                                                                                        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:710)
                                                                                                        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:195)
                                                                                                        at com.example.taxi_full.HomeActivity.onCreate(HomeActivity.java:43)
                                                                                                        at android.app.Activity.performCreate(Activity.java:8192)
                                                                                                        at android.app.Activity.performCreate(Activity.java:8159)
                                                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3765)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:106)
                                                                                                        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
                                                                                                        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2327)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:211)
                                                                                                        at android.os.Looper.loop(Looper.java:300)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8285)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)                                                                                                

Ответы

Ответов пока нет.