いつもお世話になっております。
早速ですが、ViewPagerとWebViewを用いてWebアプリを作成しております。
今回検証中に特定のAPIでエラーが起きて落ちてしまします、そのエラー内容が良くわからず困っております、、
API21&22でエラーになっております。
(それ以外の環境ではエラーになりません)
targetSdkVersion 29
minSdkVersion 21
エラー内容ですが、onCreateViewでinflater.inflateでxmlを初めて読み込むタイミングでエラーになっております。
問題のプログラムは下記です。
RedWebView.java
java
1 2View redView; 3 4@Override 5 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 6 7 // Activity再生成時にFragmentを破棄させない。 8 setRetainInstance(true); 9 10 //大元のアクティビティをインスタンス化 11 View wv = inflater.inflate(R.layout.activity_main, container,false); 12 13 //初期化されるのを防ぐため一度生成されたら入らないように 14 if(redView == null) { 15 //ここでエラーエラーになります 16 try { 17 redView = inflater.inflate(R.layout.redwebview, container, false); 18 }catch(InflateException e){ 19 Log.d("Error 1","読み込み失敗の理由は" + e); 20 } 21 } 22 23 //トップロゴ宣言 24 logo_top = (ImageButton)wv.findViewById(R.id.logo_top); 25 26 // SwipeRefreshLayoutの設定 27 mSwipeRefreshLayout = (SwipeRefreshLayout)redView.findViewById(R.id.swipe_refresh); 28 mSwipeRefreshLayout.setColorSchemeResources(R.color.red_main_color); 29 mSwipeRefreshLayout.setOnRefreshListener(mOnRefreshListener); 30 31 // dp単位を取得 32 scale = getResources().getDisplayMetrics().density; 33 // マージン 20dp に設定 34 margins = (int)(20 * scale); 35 //プログレスバーのインスタンス化 36 progressBar = redView.findViewById(R.id.progressBar); 37 //プログレスバーのMAXの値を設置 38 progressBar.setMax(100); 39 //プログレスバーの進捗値 40 progressBar.setProgress(0); 41 42 return redView; 43 }
activity_main.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:id="@+id/drawer_layout" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:fitsSystemWindows="true" 9 tools:openDrawer="end"> 10 11 12 13 <androidx.coordinatorlayout.widget.CoordinatorLayout 14 xmlns:android="http://schemas.android.com/apk/res/android" 15 xmlns:app="http://schemas.android.com/apk/res-auto" 16 xmlns:tools="http://schemas.android.com/tools" 17 android:layout_width="match_parent" 18 android:layout_height="match_parent" 19 tools:context=".MainActivity"> 20 21 <com.google.android.material.appbar.AppBarLayout 22 android:layout_height="wrap_content" 23 android:layout_width="match_parent" 24 android:theme="@style/AppTheme.AppBarOverlay"> 25 26 <androidx.appcompat.widget.Toolbar 27 android:id="@+id/toolbar" 28 android:layout_width="match_parent" 29 android:layout_height="match_parent" 30 android:background="@color/white" 31 android:paddingTop="8dp" 32 android:paddingBottom="8dp" 33 app:layout_scrollFlags="scroll|snap"> 34 35 36 <androidx.appcompat.widget.AppCompatImageButton 37 android:id="@+id/logo_top" 38 android:layout_width="wrap_content" 39 android:layout_height="wrap_content" 40 android:layout_gravity="center" 41 android:adjustViewBounds="true" 42 android:scaleType="fitCenter" /> 43 44 </androidx.appcompat.widget.Toolbar> 45 46 <com.google.android.material.tabs.TabLayout 47 android:id="@+id/tabs" 48 android:layout_width="match_parent" 49 android:layout_height="35dp" 50 android:background="@color/white" 51 android:paddingTop="0dp" 52 android:paddingBottom="0dp" 53 android:paddingLeft="0dp" 54 android:paddingRight="0dp" 55 android:state_selected="true" 56 app:tabBackground="@drawable/tab_color_selector" 57 app:tabGravity="fill" 58 app:tabMaxWidth="0dp" 59 app:tabMode="fixed" 60 app:tabTextAppearance="@style/TabText" /> 61 62 63 </com.google.android.material.appbar.AppBarLayout> 64 65 //ViewPagerはここです 66 <androidx.viewpager.widget.ViewPager 67 android:id="@+id/view_pager" 68 android:layout_width="match_parent" 69 android:layout_height="match_parent" 70 android:focusable = "true" 71 android:layout_marginBottom="@dimen/design_bottom_navigation_height" 72 app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 73 74 75 <com.google.android.material.bottomnavigation.BottomNavigationView 76 android:id="@+id/bottom_navigation" 77 android:layout_width="match_parent" 78 android:layout_height="@dimen/design_bottom_navigation_height" 79 android:background="@color/white" 80 android:layout_gravity="bottom" 81 app:itemHorizontalTranslationEnabled="false" 82 app:labelVisibilityMode="labeled" 83 app:layout_constraintBottom_toBottomOf="parent" 84 app:layout_constraintLeft_toLeftOf="parent" 85 app:layout_constraintRight_toRightOf="parent" 86 app:menu="@menu/bottom_navigation_menu"/> 87 88 </androidx.coordinatorlayout.widget.CoordinatorLayout> 89 90 91 <com.google.android.material.navigation.NavigationView 92 android:id="@+id/nav_view" 93 android:layout_width="240dp" 94 android:layout_height="match_parent" 95 android:layout_gravity="end" 96 android:fitsSystemWindows="true" 97 app:menu="@menu/activity_main_drawer" /> 98</androidx.drawerlayout.widget.DrawerLayout> 99 100
redwebview.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 tools:context=".ui.main.RedWebView"> 7 <androidx.swiperefreshlayout.widget.SwipeRefreshLayout 8 android:id="@+id/swipe_refresh" 9 android:layout_width="match_parent" 10 android:layout_height="match_parent"> 11 12 <RelativeLayout 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:fitsSystemWindows="true" 16 android:background="@color/red_main_color"> 17 18 <ProgressBar 19 android:id="@+id/progressBar" 20 style="@style/Widget.AppCompat.ProgressBar.Horizontal" 21 android:layout_width="match_parent" 22 android:layout_height="25dp" 23 android:layout_alignParentTop="true" 24 android:layout_centerHorizontal="true" 25 android:layout_centerVertical="true" 26 android:layout_marginTop="-10dp" 27 android:backgroundTintMode="add" 28 android:indeterminate="false" 29 android:progressDrawable="@drawable/redprogress" 30 tools:visibility="visible"/> 31 32 //エラーになっている箇所 33 <パッケージ名.NestedWebView 34 android:id="@+id/redWebView" 35 android:layout_width="match_parent" 36 android:layout_height="match_parent" 37 android:isScrollContainer="false" 38 android:layout_marginTop="5dp"/> 39 40 </RelativeLayout> 41 42 </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> 43</FrameLayout>
Error
1D/Error 1: 読み込み失敗の理由はandroid.view.InflateException: Binary XML file line #32: Error inflating class パッケージ名.NestedWebView
追記内容
tryを使っているのでそのまま下に行ってSwipeRefreshLayoutでエラーが起きます。
chachの内容は上に記述しております。
1万文字を超えたため下に記入します。
回答1件
あなたの回答
tips
プレビュー