Stack Overflow на русском Asked on November 27, 2021
Использую ViewPage и TabLayout для горизонтального скролинга фрагментов. На sdk 7.0 и выше работает все замечательно. Но когда происходит просмотр на устройствах версией 6.0 и ниже, то приложение вылетает. Строка, из-за которой происходит вылет отмечена в коде. Если ее закоммитить или строку выше (может быть проблема в адаптаре, пока поиски ни к чему не привели), то приложение работает, но без нужного функционала. Кто-нибудь сталкивался с похожей проблемой? Из-за чего может быть такое (потому что только на 6.0 и ниже такая проблема)?
Сам код:
private fun initViewPagerAndTabLayout(){
binding.entranceSystemViewpager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener{
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
binding.entranceSystemViewpager.reMeasureCurrentPage(binding.entranceSystemViewpager.currentItem)
}
})
val viewPagerAdapter = ViewPagerAdapter(requireActivity().supportFragmentManager)
binding.entranceSystemViewpager.adapter = viewPagerAdapter
//строка на которой вылетает приложение
binding.entranceSystemTablayout.setupWithViewPager(binding.entranceSystemViewpager)
}
private inner class ViewPagerAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
private val listFragments : List<Fragment> = listOf(
BannerShops(), BannerSticker(),
BannerList()
)
override fun getItem(position: Int): Fragment {
return listFragments[position]
}
override fun getCount(): Int {
return listFragments.count()
}
}
Код ошибки:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test, PID: 13564
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.project.activities.MainActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f0700db
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0700db
at android.content.res.Resources.getValue(Resources.java:1351)
at androidx.appcompat.widget.ResourceManagerInternal.loadDrawableFromDelegates(ResourceManagerInternal.java:252)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:139)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:132)
at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:104)
at com.google.android.material.tabs.TabLayout$TabView.updateBackgroundDrawable(TabLayout.java:2243)
at com.google.android.material.tabs.TabLayout$TabView.<init>(TabLayout.java:2231)
at com.google.android.material.tabs.TabLayout.createTabView(TabLayout.java:1463)
at com.google.android.material.tabs.TabLayout.newTab(TabLayout.java:818)
at com.google.android.material.tabs.TabLayout.populateFromPagerAdapter(TabLayout.java:1440)
at com.google.android.material.tabs.TabLayout.setPagerAdapter(TabLayout.java:1431)
at com.google.android.material.tabs.TabLayout.setupWithViewPager(TabLayout.java:1342)
at com.google.android.material.tabs.TabLayout.setupWithViewPager(TabLayout.java:1303)
at com.google.android.material.tabs.TabLayout.setupWithViewPager(TabLayout.java:1283)
at com.test.project.fragments.EntranceApp.initViewPagerAndTabLayout(EntranceApp.kt:80)
at com.test.project.fragments.EntranceApp.onViewCreated(EntranceApp.kt:52)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:332)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1199)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1509)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2181)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2004)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1861)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2641)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2589)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
at android.app.Activity.performStart(Activity.java:6253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Как я понял вы пытаетесь изменить изображение. Но старые версии андроид почему-то не любят изображения в векторе. Если вы используете вектор, то решением будет заменить вектор на png/jpg.
Answered by ANDREIRTT on November 27, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP