【问题标题】:Error inflating class android.support.design.widget.CoordinatorLayout and ClassNotFoundException: android.support.design.R$styleable膨胀类 android.support.design.widget.CoordinatorLayout 和 ClassNotFoundException 时出错:android.support.design.R$styleable
【发布时间】:2015-09-29 07:52:17
【问题描述】:

我正在开发一个应用程序,它具有带有滑动功能的选项卡。我正在使用 Eclipse 进行开发。我已通过属性将support design library 作为库导入。在运行期间,我不断收到此错误“Error inflating class android.support.design.widget.CoordinatorLayout”。

  1. 首先我添加了android support design.jar 并尝试了,但不起作用
  2. 我通过Java build path添加了support design libraryclass.jar文件,这不起作用
  3. 最后我使用Properties->Android->Add Librarysupport design library 导入为库,这也不起作用
  4. 我将父主题用作“Theme.AppCompat.Light.DarkActionBar

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">

  1. 我正在扩展AppCompatActivity,请参阅我的 MainActivity.Java

    包 com.example.scrollingtab.activity;

    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.widget.Button;
    import com.example.scrollingtab.R;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Toolbar toolbar;
        private Button btnSimpleTabs, btnScrollableTabs, btnIconTextTabs, btnIconTabs, btnCustomIconTextTabs;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            btnSimpleTabs = (Button) findViewById(R.id.btnSimpleTabs);
    
            btnSimpleTabs.setOnClickListener(this);
    
        }
    

下面是完整的堆栈跟踪:

FATAL EXCEPTION: main
Process: com.example.scrollingtab, PID: 1348
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.scrollingtab/com.example.scrollingtab.activity.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.CoordinatorLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.CoordinatorLayout
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:257)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
at com.example.scrollingtab.activity.MainActivity.onCreate(MainActivity.java:20)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/design/R$styleable;
at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:171)
at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:165)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.R$styleable" on path: DexPathList[[zip file "/data/app/com.example.scrollingtab-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
Suppressed: java.lang.ClassNotFoundException: android.support.design.R$styleable
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

我已经尝试过 SO 谈论和提供的大部分内容。我仍然无法追踪我的程序中有什么问题。

需要帮助来解决这个问题。

谢谢

【问题讨论】:

标签: android android-layout android-fragments


【解决方案1】:

我在迁移到 AndroidX 时遇到此错误

为了解决我做了:

  1. 按照@Mikeumus 的建议 - 并将其添加到模块的 build.gradle 依赖项中:

    实现'androidx.coordinatorlayout:coordinatorlayout:latest.version.here'

  2. 签入布局 XML 文件(您尝试使用 setContentView

  3. 启动的布局

如果布局包含: android.support.design.widget.CoordinatorLayout ...

将其替换为:&lt;androidx.coordinatorlayout.widget.CoordinatorLayout

  1. 在同一个布局文件中 - 替换结束标签

&lt;/android.support.design.widget.CoordinatorLayout&gt;

&lt;/androidx.coordinatorlayout.widget.CoordinatorLayout&gt;

【讨论】:

    【解决方案2】:

    对我来说,这个错误是由于使用了一些 androidx 库,但在一些 layout.xml 文件中仍然有旧的坐标布局。

    build.gradle:

    com.android.support:coordinatorlayout -> androidx.coordinatorlayout:coordinatorlayout:1.0.0-alpha1

    如果您使用的是androidx,那么也许这也是您的问题。 我还必须更新其他 v7 库,例如 Toolbar

    在此处查看androidx 迁移指南:https://developer.android.com/topic/libraries/support-library/refactor

    【讨论】:

    • 在使用 Android Studio 迁移工具时,必须小心,只有当前版本会被迁移!当我尝试运行另一种风格时,我遇到了这个问题,我没有意识到布局没有被迁移。
    【解决方案3】:

    对于 android studio 尝试添加这些依赖项

    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    

    【讨论】:

      【解决方案4】:

      我找到了eclipse的解决方案

      我面临的问题是 R.Java 文件未在 gen/ 文件夹的 support.design 下生成。

      执行以下步骤后,R.Java 文件就生成了。主要问题是 design 库的目标是 22。更改为 23 有效。

      1. \sdk\extras\android\support\design 导入支持设计库到eclipse工作区。

      2. 打开 AppCompatdesign 库的 project.properties 并将其定位到 23

      3. 清理 AppcompatdesignYourProject

      4. 运行应用程序

      【讨论】:

        【解决方案5】:

        确保在您的活动集主题 AppCompat

        <activity
                    android:name=".newApp.screens.main.MainActivity"
                    android:label="@string/title_activity_main_launch"
                    android:theme="@style/AppThemes"></activity>
        
          <!-- Base application theme. -->
        <style name="AppThemes" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="colorPrimary">#673AB7</item>
            <item name="colorPrimaryDark">#512DA8</item>
            <item name="colorAccent">#00BCD4</item>
        </style>
        

        【讨论】:

          猜你喜欢
          • 2015-08-14
          • 2017-02-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多