简体   繁体   English

我似乎无法在旧版的Android手机上运行我的Android Studio项目

[英]I cannot seem to run my android studio project on an older android phone

I'm working on a game project for one of my college coding classes (written in java), and I'm using Android studio. 我正在为我的一个大学编码类(用Java编写)开发一个游戏项目,并且正在使用Android Studio。 I understand java basics, though I'm new to Android studio. 尽管我是Android Studio的新手,但我了解Java基础知识。 My main issue has to do with running/testing my project on older API/SDK versions, specifically on an older phone. 我的主要问题与在较旧的API / SDK版本(尤其是在较旧的手机)上运行/测试我的项目有关。

I've been developing on Android 8.0 (Oreo) on API 26, though I also have Pie installed (API 28). 我一直在开发基于API 26的Android 8.0(Oreo),尽管我也安装了Pie(API 28)。 Currently, my targetSDKVersion is 26, compileSDKVersion is 26, and my minSDKVersion is 19. 当前,我的targetSDKVersion是26,compileSDKVersion是26,而我的minSDKVersion是19。

I'm trying to run my app (called AMaze) on a Samsung Galaxy S4 (API 19), and that's why my minSDKVersion is 19. It runs completely fine on phones that support Android 8.0 and above, as far as I'm aware. 我正在尝试在Samsung Galaxy S4(API 19)上运行我的应用程序(称为AMaze),这就是为什么我的minSDKVersion为19的原因。据我所知,它在支持Android 8.0及更高版本的手机上可以正常运行。 But when I run the app on my Galaxy S4, it opens and crashes instantly saying "Unfortunately, your application has stopped". 但是,当我在Galaxy S4上运行该应用程序时,它会打开并崩溃,并立即显示“很遗憾,您的应用程序已停止”。 I cannot figure out how to solve this. 我不知道如何解决这个问题。

I've scoured StackOverflow and the Android Developers website for answers, but with minimal luck. 我已经在StackOverflow和Android Developers网站上搜索了答案,但是运气很小。 I've tried cleaning and rebuilding the project using the gradle, I've tried disabling Instant Run, and I've tried to make the compileSDKVersion 19 instead of 26 (but that causes the compiler to get angry, saying that Google Play requires it to be 26 or above). 我尝试使用gradle清理和重建项目,尝试禁用Instant Run,并尝试使compileSDKVersion 19而不是26(但这会使编译器感到恼火,说Google Play要求它26岁或以上)。 My phone I'm assuming is android compatible (see https://developer.android.com/guide/practices/compatibility ), and I followed the instructions to connect the phone to my computer ( https://developer.android.com/training/basics/firstapp/running-app ). 我假设我的手机与android兼容(请参阅https://developer.android.com/guide/practices/compatibility ),我按照说明将手机连接到计算机( https://developer.android.com) / training / basics / firstapp / running-app )。 Based on the Developers website, it SEEMS all I should have to do is set minSDKVersion to the correct level, and adjust for any API deprecation and updates in the code (which I think I've done). 根据开发者网站,它要做的所有事情就是将minSDKVersion设置为正确的级别,并针对代码中的所有API弃用和更新进行调整(我认为我已经做到了)。 But it still doesn't work. 但这仍然行不通。

What I did discover is that my code is producing an inflate exception in the onCreate() method of my main activity (called AMazeActivity). 我发现的是我的代码在我的主要活动(称为AMazeActivity)的onCreate()方法中产生了膨胀异常。 Seems like a variety of things can cause this error, but I cannot figure out my root cause. 似乎各种原因都可能导致此错误,但我无法找出根本原因。 This guy has a similar situation: android.view.InflateException: Binary XML file: Error inflating class fragment 这个家伙也有类似的情况: android.view.InflateException:二进制XML文件:错误夸大类片段

Here is the entire error message I get after running the app on the phone. 这是在手机上运行应用程序后收到的完整错误消息。 The error message says my inflate exception is due to trying to inflate Spinner : 错误消息说我的膨胀异常是由于试图使Spinner膨胀:

12/27 22:08:17: Launching app
No apk changes detected since last installation, skipping installation of C:\Users\jandj\AndroidStudioProjects\AMaze\app\build\outputs\apk\debug\app-debug.apk
$ adb shell am force-stop cs.cs301.amaze
$ adb shell am start -n "cs.cs301.amaze/cs.cs301.amaze.gui.AMazeActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 28224 on device samsung-sgh_m919-47dccee4
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/dalvikvm: Could not find method android.view.Window$Callback.onPointerCaptureChanged, referenced from method android.support.v7.view.WindowCallbackWrapper.onPointerCaptureChanged
W/dalvikvm: VFY: unable to resolve interface method 16265: Landroid/view/Window$Callback;.onPointerCaptureChanged (Z)V
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
I/dalvikvm: Could not find method android.view.Window$Callback.onProvideKeyboardShortcuts, referenced from method android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts
W/dalvikvm: VFY: unable to resolve interface method 16267: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
W/dalvikvm: VFY: unable to resolve interface method 16269: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
W/dalvikvm: VFY: unable to resolve interface method 16273: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002
I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
W/dalvikvm: VFY: unable to resolve virtual method 708: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
W/dalvikvm: VFY: unable to resolve virtual method 730: Landroid/content/res/TypedArray;.getType (I)I
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0008
I/dalvikvm: Could not find method android.content.Context.createDeviceProtectedStorageContext, referenced from method android.support.v4.content.ContextCompat.createDeviceProtectedStorageContext
W/dalvikvm: VFY: unable to resolve virtual method 485: Landroid/content/Context;.createDeviceProtectedStorageContext ()Landroid/content/Context;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.getCodeCacheDir, referenced from method android.support.v4.content.ContextCompat.getCodeCacheDir
W/dalvikvm: VFY: unable to resolve virtual method 491: Landroid/content/Context;.getCodeCacheDir ()Ljava/io/File;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.getColor, referenced from method android.support.v4.content.ContextCompat.getColor
W/dalvikvm: VFY: unable to resolve virtual method 492: Landroid/content/Context;.getColor (I)I
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method android.support.v4.content.ContextCompat.getColorStateList
W/dalvikvm: VFY: unable to resolve virtual method 493: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.getDataDir, referenced from method android.support.v4.content.ContextCompat.getDataDir
W/dalvikvm: VFY: unable to resolve virtual method 495: Landroid/content/Context;.getDataDir ()Ljava/io/File;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.getDrawable, referenced from method android.support.v4.content.ContextCompat.getDrawable
W/dalvikvm: VFY: unable to resolve virtual method 496: Landroid/content/Context;.getDrawable (I)Landroid/graphics/drawable/Drawable;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.getNoBackupFilesDir, referenced from method android.support.v4.content.ContextCompat.getNoBackupFilesDir
W/dalvikvm: VFY: unable to resolve virtual method 503: Landroid/content/Context;.getNoBackupFilesDir ()Ljava/io/File;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.isDeviceProtectedStorage, referenced from method android.support.v4.content.ContextCompat.isDeviceProtectedStorage
W/dalvikvm: VFY: unable to resolve virtual method 516: Landroid/content/Context;.isDeviceProtectedStorage ()Z
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.content.Context.startForegroundService, referenced from method android.support.v4.content.ContextCompat.startForegroundService
W/dalvikvm: VFY: unable to resolve virtual method 531: Landroid/content/Context;.startForegroundService (Landroid/content/Intent;)Landroid/content/ComponentName;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.widget.FrameLayout.startActionModeForChild, referenced from method android.support.v7.widget.ActionBarContainer.startActionModeForChild
W/dalvikvm: VFY: unable to resolve virtual method 16736: Landroid/widget/FrameLayout;.startActionModeForChild (Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0002
I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method android.support.v7.content.res.AppCompatResources.getColorStateList
W/dalvikvm: VFY: unable to resolve virtual method 493: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/graphics/drawable/Icon;)
I/dalvikvm: Could not find method android.widget.ImageButton.setImageIcon, referenced from method android.support.v7.widget.AppCompatImageButton.setImageIcon
W/dalvikvm: VFY: unable to resolve virtual method 16759: Landroid/widget/ImageButton;.setImageIcon (Landroid/graphics/drawable/Icon;)V
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0000
I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable
W/dalvikvm: VFY: unable to resolve virtual method 671: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity
W/dalvikvm: VFY: unable to resolve virtual method 673: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002
E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
W/dalvikvm: VFY: unable to resolve instanceof 194 (Landroid/graphics/drawable/RippleDrawable;) in Landroid/support/v7/widget/AppCompatImageHelper;
D/dalvikvm: VFY: replacing opcode 0x20 at 0x000c
I/dalvikvm: Could not find method android.widget.TextView.getAutoSizeMaxTextSize, referenced from method android.support.v7.widget.AppCompatTextView.getAutoSizeMaxTextSize
W/dalvikvm: VFY: unable to resolve virtual method 17062: Landroid/widget/TextView;.getAutoSizeMaxTextSize ()I
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.getAutoSizeMinTextSize, referenced from method android.support.v7.widget.AppCompatTextView.getAutoSizeMinTextSize
W/dalvikvm: VFY: unable to resolve virtual method 17063: Landroid/widget/TextView;.getAutoSizeMinTextSize ()I
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.getAutoSizeStepGranularity, referenced from method android.support.v7.widget.AppCompatTextView.getAutoSizeStepGranularity
W/dalvikvm: VFY: unable to resolve virtual method 17064: Landroid/widget/TextView;.getAutoSizeStepGranularity ()I
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.getAutoSizeTextAvailableSizes, referenced from method android.support.v7.widget.AppCompatTextView.getAutoSizeTextAvailableSizes
W/dalvikvm: VFY: unable to resolve virtual method 17065: Landroid/widget/TextView;.getAutoSizeTextAvailableSizes ()[I
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.getAutoSizeTextType, referenced from method android.support.v7.widget.AppCompatTextView.getAutoSizeTextType
W/dalvikvm: VFY: unable to resolve virtual method 17066: Landroid/widget/TextView;.getAutoSizeTextType ()I
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0007
I/dalvikvm: Could not find method android.widget.TextView.setAutoSizeTextTypeUniformWithConfiguration, referenced from method android.support.v7.widget.AppCompatTextView.setAutoSizeTextTypeUniformWithConfiguration
W/dalvikvm: VFY: unable to resolve virtual method 17109: Landroid/widget/TextView;.setAutoSizeTextTypeUniformWithConfiguration (IIII)V
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.setAutoSizeTextTypeUniformWithPresetSizes, referenced from method android.support.v7.widget.AppCompatTextView.setAutoSizeTextTypeUniformWithPresetSizes
W/dalvikvm: VFY: unable to resolve virtual method 17110: Landroid/widget/TextView;.setAutoSizeTextTypeUniformWithPresetSizes ([II)V
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.setAutoSizeTextTypeWithDefaults, referenced from method android.support.v7.widget.AppCompatTextView.setAutoSizeTextTypeWithDefaults
W/dalvikvm: VFY: unable to resolve virtual method 17111: Landroid/widget/TextView;.setAutoSizeTextTypeWithDefaults (I)V
D/dalvikvm: VFY: replacing opcode 0x6f at 0x0006
I/dalvikvm: Could not find method android.widget.TextView.getAutoSizeStepGranularity, referenced from method android.support.v7.widget.AppCompatTextHelper.loadFromAttributes
W/dalvikvm: VFY: unable to resolve virtual method 17064: Landroid/widget/TextView;.getAutoSizeStepGranularity ()I
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0163
I/dalvikvm: Could not find method android.text.StaticLayout$Builder.obtain, referenced from method android.support.v7.widget.AppCompatTextViewAutoSizeHelper.createStaticLayoutForMeasuring
W/dalvikvm: VFY: unable to resolve static method 15540: Landroid/text/StaticLayout$Builder;.obtain (Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
D/dalvikvm: VFY: replacing opcode 0x71 at 0x0014
D/ProgressBar: setProgressDrawable drawableHeight = 36
D/AbsSeekBar: AbsSeekBar Constructor: mAllowedSeeBarAnimation = true
D/ProgressBar: setProgressDrawable drawableHeight = 36
    setProgressDrawable getHeight() = 0
    updateDrawableBounds: left = 0
    updateDrawableBounds: top = 0
    updateDrawableBounds: right = -96
    updateDrawableBounds: bottom = 0
    updateDrawableBounds: mProgressDrawable.setBounds()
I/dalvikvm: Could not find method android.widget.Spinner.getPopupContext, referenced from method android.support.v7.widget.AppCompatSpinner.getPopupContext
W/dalvikvm: VFY: unable to resolve virtual method 17017: Landroid/widget/Spinner;.getPopupContext ()Landroid/content/Context;
D/dalvikvm: VFY: replacing opcode 0x6f at 0x000d
W/ResourceType: Skipping entry 0x7f050026 in package table 0 because it is not complex!
E/AMazeActivity: onCreate
    android.view.InflateException: Binary XML file line #46: Error inflating class Spinner
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at cs.cs301.amaze.gui.AMazeActivity.onCreate(AMazeActivity.java:39)
        at android.app.Activity.performCreate(Activity.java:5585)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
        at android.app.ActivityThread.access$900(ActivityThread.java:170)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:146)
        at android.app.ActivityThread.main(ActivityThread.java:5635)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
        at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:215)
        at android.content.res.Resources.getTextArray(Resources.java:1626)
        at android.content.res.TypedArray.getTextArray(TypedArray.java:629)
        at android.widget.AbsSpinner.<init>(AbsSpinner.java:74)
        at android.widget.Spinner.<init>(Spinner.java:174)
        at android.widget.Spinner.<init>(Spinner.java:153)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:195)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:166)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:147)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:132)
        at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:115)
        at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)
        at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:690)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at cs.cs301.amaze.gui.AMazeActivity.onCreate(AMazeActivity.java:39) 
        at android.app.Activity.performCreate(Activity.java:5585) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495) 
        at android.app.ActivityThread.access$900(ActivityThread.java:170) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:146) 
        at android.app.ActivityThread.main(ActivityThread.java:5635) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
        at dalvik.system.NativeStart.main(Native Method) 
D/AndroidRuntime: Shutting down VM
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x417eeda0)
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cs.cs301.amaze, PID: 28224
    java.lang.RuntimeException: Unable to start activity ComponentInfo{cs.cs301.amaze/cs.cs301.amaze.gui.AMazeActivity}: android.view.InflateException: Binary XML file line #46: Error inflating class Spinner
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2436)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
        at android.app.ActivityThread.access$900(ActivityThread.java:170)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:146)
        at android.app.ActivityThread.main(ActivityThread.java:5635)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #46: Error inflating class Spinner
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at cs.cs301.amaze.gui.AMazeActivity.onCreate(AMazeActivity.java:39)
        at android.app.Activity.performCreate(Activity.java:5585)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495) 
        at android.app.ActivityThread.access$900(ActivityThread.java:170) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:146) 
        at android.app.ActivityThread.main(ActivityThread.java:5635) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.NullPointerException
        at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:215)
        at android.content.res.Resources.getTextArray(Resources.java:1626)
        at android.content.res.TypedArray.getTextArray(TypedArray.java:629)
        at android.widget.AbsSpinner.<init>(AbsSpinner.java:74)
        at android.widget.Spinner.<init>(Spinner.java:174)
        at android.widget.Spinner.<init>(Spinner.java:153)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:195)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:166)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:147)
        at android.support.v7.widget.AppCompatSpinner.<init>(AppCompatSpinner.java:132)
        at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:115)
        at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)
        at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:690)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at cs.cs301.amaze.gui.AMazeActivity.onCreate(AMazeActivity.java:39) 
        at android.app.Activity.performCreate(Activity.java:5585) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2400) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495) 
        at android.app.ActivityThread.access$900(ActivityThread.java:170) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:146) 
        at android.app.ActivityThread.main(ActivityThread.java:5635) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
        at dalvik.system.NativeStart.main(Native Method) 
I/Process: Sending signal. PID: 28224 SIG: 9
Application terminated.

Here is where the crash happens in my main activity. 这是我的主要活动发生崩溃的地方。 I try to surround the code in a try/catch block to catch the exception and print it out more cleanly, which is shone above: 我尝试将代码放在try / catch块中,以捕获异常并将其更干净地打印出来,如上所示:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        try {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_amaze);
        }
        catch (Exception e) {
            e.getCause();
            Log.e("AMazeActivity", "onCreate", e);
            throw e;
        }
.  .  .
.  .  .

Things to note: I'm using a Constraints layout for my activities, I'm only using one custom view in the program, and I'm using no custom themes. 注意事项:我在活动中使用了约束布局,在程序中仅使用了一个自定义视图,并且未使用任何自定义主题。 Here's the XML file where the exception complains about Spinner: 这是异常抱怨Spinner的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context="cs.cs301.amaze.gui.AMazeActivity">

   .  .  .

    <TextView
        android:id="@+id/diff_JFrame"
        android:layout_width="248dp"
        android:layout_height="60dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="256dp"
        android:text="Difficulty/Size"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

   .  .  .

    <Spinner
        android:id="@+id/mazeGen"
        android:layout_width="248dp"
        android:layout_height="35dp"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="120dp"
        android:layout_marginBottom="130dp"
        android:entries="@color/colorAccent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        />
   .  .  .

I think it's likely just a matter of changing a few lines in the settings (maybe in gradle, the manifest file, R class, an XML file, etc), but I don't know what to change or where. 我认为可能只是更改设置中的几行(也许在gradle,清单文件,R类,XML文件等中),但是我不知道要更改什么或在哪里更改。 Any help would be greatly appreciated! 任何帮助将不胜感激!

Change this line 更改此行

android:entries="@color/colorAccent"

to

android:entries="@array/yourarrayname"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM