选项卡布局不可用,错误膨胀,导入的所有内容,但未"visible"



我一直收到此错误。我已经尝试了我可以在StackOverflow上找到的解决方案,但没有任何效果。

这是错误:膨胀类 android.support.design.widget.TabLayout 时出错

这是我在依赖项中使用的: 实现 'com.android.support:design:29.3.0'

XML 的外观如下所示:

<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed" />

我尝试创建一个 version-v21 文件夹并设置主题,但这不能将样式作为属性。遵循这个: http://geeksmember.blogspot.com/2015/10/errorerror-inflating-class.html

我还尝试使用定制的清单更改清单中的主题。

完整activity_main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context="com.example.android.tourguide.MainActivity">

<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed" />

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

我还在 MainActivity 的第 16 行收到错误.java: (设置内容视图)

package com.example.android.tourguide;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
//import android.support.design.widget.TabLayout;
import android.os.Bundle;
import com.google.android.material.tabs.TabLayout;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the view pager that will allow the user to swipe between fragments
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
// Create adapter to show the appropriate fragment for each page
SimpleFragmentPagerAdapter adapter = new SimpleFragmentPagerAdapter(getSupportFragmentManager());
// Set the adapter onto the view pager
viewPager.setAdapter(adapter);
// Give the TabLayout the ViewPager
TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
}
}

这是整个日志:

2019-08-14 21:08:12.864 6000-6000/? I/droid.tourguid: Not late-enabling -Xcheck:jni (already on)
2019-08-14 21:08:12.891 6000-6000/? W/droid.tourguid: Unexpected CPU variant for X86 using defaults: x86
2019-08-14 21:08:13.344 6000-6000/com.example.android.tourguide W/droid.tourguid: JIT profile information will not be recorded: profile file does not exits.
2019-08-14 21:08:13.347 6000-6000/com.example.android.tourguide I/chatty: uid=10089(com.example.android.tourguide) identical 10 lines
2019-08-14 21:08:13.347 6000-6000/com.example.android.tourguide W/droid.tourguid: JIT profile information will not be recorded: profile file does not exits.
2019-08-14 21:08:13.431 6000-6000/com.example.android.tourguide I/InstantRun: starting instant run server: is main process
2019-08-14 21:08:13.659 6000-6000/com.example.android.tourguide W/droid.tourguid: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2019-08-14 21:08:13.659 6000-6000/com.example.android.tourguide W/droid.tourguid: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2019-08-14 21:08:13.672 6000-6000/com.example.android.tourguide D/AndroidRuntime: Shutting down VM
2019-08-14 21:08:13.680 6000-6000/com.example.android.tourguide E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.tourguide, PID: 6000
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.tourguide/com.example.android.tourguide.MainActivity}: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class android.support.design.widget.TabLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class android.support.design.widget.TabLayout
Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.design.widget.TabLayout
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.TabLayout" on path: DexPathList[[zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/base.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_resources_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
2019-08-14 21:08:13.685 6000-6000/com.example.android.tourguide E/AndroidRuntime:     at com.example.android.tourguide.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.example.android.tourguide-Ok8HTD230dRMxKJwA7oooQ==/split_lib_resources_apk.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:74)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:727)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:810)
at android.app.LoadedApk.getResources(LoadedApk.java:1032)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2345)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5749)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
... 6 more
2019-08-14 21:08:13.726 6000-6000/com.example.android.tourguide I/Process: Sending signal. PID: 6000 SIG: 9

欲了解更多信息,请询问。

布局和活动都应使用匹配的视图。在您的活动中,您使用的是以下 androidX 库:

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;

因此,您还需要在布局中使用相同的视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context="com.example.android.tourguide.MainActivity">

<com.google.android.material.tabs.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed" />

<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

请注意,支持库没有版本29。最后一个版本只是版本28.0.0,请参阅更新日志。

另请参阅迁移到 AndroidX

您在活动中导入了androidx库,并在xml中使用了支持库。在活动类中使用支持库。

替换

android.support.design.widget.TabLayout
android.support.v4.view.ViewPager

com.google.android.material.tabs.TabLayout
androidx.viewpager.widget.ViewPager

添加到 app.gradle 依赖项

implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.viewpager:viewpager:1.0.0'

最新更新