java - 更新一些 SDK 工具后 Android 给我很多错误

标签 java android

最近,我意识到在从独立 SDK 管理器更新一些 SDK 工具后,我在使用 Android Studio 时遇到了很多(奇怪的)问题,例如无法在右侧的 Android 预览 Pane 中看到 ProgressBar。它给了我错误

Exception raised during rendering: Binary XML file line #-1: Error inflating class <unknown> (Details)

但是,它在我的手机上运行得很好,所以我忽略了它。最近,当我尝试使用 ADB 运行我的应用程序时,应用程序崩溃并出现 logcat 中的一些错误。它们如下:

08-07 20:57:44.745 31113-31113/com.example.android.app E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: com.example.android.app, PID: 31113
                                                            java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.app/com.example.android.app.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3149)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
                                                                at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5146)
                                                                at android.app.ActivityThread.access$1100(ActivityThread.java:197)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1687)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:145)
                                                                at android.app.ActivityThread.main(ActivityThread.java:6872)
                                                                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:1404)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
                                                             Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:343)
                                                                at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:312)
                                                                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:277)
                                                                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                at com.example.android.app.MainActivity.onCreate(MainActivity.java:70)
                                                                at android.app.Activity.performCreate(Activity.java:6550)
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248) 
                                                                at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5146) 
                                                                at android.app.ActivityThread.access$1100(ActivityThread.java:197) 
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1687) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                at android.os.Looper.loop(Looper.java:145) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:6872) 
                                                                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:1404) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
08-07 20:58:24.565 2840-2840/com.example.android.app E/VdcInflateDelegate: Exception while inflating <vector>
                                                              java.lang.RuntimeException: Failed to resolve attribute at index 1
                                                                  at android.content.res.TypedArray.twGetColorStateList(TypedArray.java:438)
                                                                  at android.content.res.TypedArray.getColorStateList(TypedArray.java:420)
                                                                  at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:518)
                                                                  at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472)
                                                                  at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436)
                                                                  at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:708)
                                                                  at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:348)
                                                                  at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
                                                                  at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:181)
                                                                  at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:689)
                                                                  at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:186)
                                                                  at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77)
                                                                  at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:83)
                                                                  at android.support.v7.app.AppCompatDelegateImplV7.<init>(AppCompatDelegateImplV7.java:146)
                                                                  at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:28)
                                                                  at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:41)
                                                                  at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:193)
                                                                  at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:173)
                                                                  at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:511)
                                                                  at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
                                                                  at com.example.android.app.SplashActivity.onCreate(SplashActivity.java:27)
                                                                  at android.app.Activity.performCreate(Activity.java:6550)
                                                                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102)
                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
                                                                  at android.app.ActivityThread.access$1000(ActivityThread.java:197)
                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681)
                                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                  at android.os.Looper.loop(Looper.java:145)
                                                                  at android.app.ActivityThread.main(ActivityThread.java:6872)
                                                                  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:1404)
                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
08-07 20:58:24.595 2840-2840/com.example.android.app E/AndroidRuntime: FATAL EXCEPTION: main
                                                          Process: com.example.android.app, PID: 2840
                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.app/com.example.android.app.SplashActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3149)
                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
                                                              at android.app.ActivityThread.access$1000(ActivityThread.java:197)
                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681)
                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                              at android.os.Looper.loop(Looper.java:145)
                                                              at android.app.ActivityThread.main(ActivityThread.java:6872)
                                                              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:1404)
                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
                                                           Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                              at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:343)
                                                              at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:312)
                                                              at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:277)
                                                              at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                              at com.example.android.app.SplashActivity.onCreate(SplashActivity.java:28)
                                                              at android.app.Activity.performCreate(Activity.java:6550)
                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3102)
                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248) 
                                                              at android.app.ActivityThread.access$1000(ActivityThread.java:197) 
                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681) 
                                                              at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                              at android.os.Looper.loop(Looper.java:145) 
                                                              at android.app.ActivityThread.main(ActivityThread.java:6872) 
                                                              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:1404) 
                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

我记得很清楚,我没有更改任何应用程序的主题。我的 SplashActivity.java 的一部分如下:

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); // line 27
        setContentView(R.layout.activity_splash); // line 28
    }

    // ...
}

还有我的MainActivity.java:

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // line 70

        // ...
    }

    // ...
}

下图显示了我安装的SDK:

List of installed SDK

有人知道为什么会发生这种情况吗?请随时在下面的评论中询问任何问题。谢谢!

最佳答案

我通过将 gradle 中的 buildToolsVersion23.0.3 降级到 23.0.2 部分解决了我的问题。这解决了我的所有问题,除了 ProgressBar 问题。当我设法解决这个问题时,我会发布更新。

关于java - 更新一些 SDK 工具后 Android 给我很多错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38814580/

相关文章:

java - 在 Android 中使用 POI 创建 Excel 文档后立即打开它们

android - ACTION_CAMERA_BUTTON 的广播接收器永远不会被调用

安卓。按标签查找 View

android - 如何使用 moshi 反序列化泛型类成员?

android - Tumblr Xauth Android - 400 错误请求错误

StringBuilder和StringBuffer有哪些区别呢

java - 玩! 1.2.5。 : Object's collection of enums binding to template

java - 有没有办法将 JTextArea 的插入符垂直向上移动?

java - 想要在jsp中显示与值对应的枚举名称

java - 如何在抽屉布局(带有抽屉导航菜单)中使用Android导航组件(导航图)?