2017-05-23 3 views
1

android attrs.xml 파일에 다른 색상 쉐도우의 속성을 추가했습니다. styles.xml 파일에는이 속성 색상이 있으므로 각 스타일마다 다릅니다.java.lang.UnsupportedOperationException : 인덱스 13의 속성을 분석하지 못했습니다. TypedValue {t = 0x2/d = 0x7f010046 a = -1}

attrs.xml이 :

<attr name="lightBackground" format="color" /> 
<attr name="normalBackground" format="color" /> 

styles.xml :

<style name="AppThemeNight" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimaryNight</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDarkNight</item> 
    <item name="colorAccent">@color/colorAccentNight</item> 

    <item name="drawerArrowStyle">@style/DrawerIcon</item> 
    <item name="lightBackground">@color/colorPrimaryLightNight</item> 
    <item name="normalBackground">@color/colorPrimaryNight</item> 
</style> 

사용자 정의 스피너 레이아웃을 팽창 : spinner_layout_adapter.xml 그러나

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/spinnerLayoutAdapter_tv_spinnerText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="15dp" 
     android:text="TextView" 
     android:textColor="@android:color/white" 
     android:background="?attr/normalBackground" 
     android:textSize="16sp"/> 

,

05-23 14:22:34.833 17231-17231/nl.gemeente.breda.bredaapp E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: nl.gemeente.breda.bredaapp, PID: 17231 
    android.view.InflateException: Binary XML file line #3: Binary XML file line #3: Error inflating class android.widget.TextView 
    Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class android.widget.TextView 
    Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Constructor.newInstance0(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:430) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:645) 
     at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
     at nl.gemeente.breda.bredaapp.adapter.ServiceAdapter.getView(ServiceAdapter.java:32) 
     at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:194) 
     at android.widget.Spinner.onMeasure(Spinner.java:592) 
     at android.support.v7.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:416) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1117) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:642) 
     at android.view.View.measure(View.java:19861) 
     at android.support.constraint.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:934) 
     at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:973) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714) 
     at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:786) 
     at android.view.View.measure(View.java:19861) 
     at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1081) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6083) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
05-23 14:22:34.833 17231-17231/nl.gemeente.breda.bredaapp E/AndroidRuntime:  at com.android.internal.policy.DecorView.onMeasure(DecorView.java:691) 
     at android.view.View.measure(View.java:19861) 
     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2275) 
     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1366) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1619) 
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254) 
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6344) 
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) 
     at android.view.Choreographer.doCallbacks(Choreographer.java:686) 
     at android.view.Choreographer.doFrame(Choreographer.java:621) 
     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) 
     at android.os.Handler.handleCallback(Handler.java:751) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6178) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 
    Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f010046 a=-1} 
     at android.content.res.TypedArray.getDrawable(TypedArray.java:925) 
     at android.view.View.<init>(View.java:4202) 
     at android.widget.TextView.<init>(TextView.java:710) 
     at android.widget.TextView.<init>(TextView.java:704) 
     at android.widget.TextView.<init>(TextView.java:700) 
      ... 71 more 

아래와 같이 일반적인 색상으로 속성을 변경하면 효과가 있습니다. ? attr/normalBackground 속성이 작동하지 않는 것 같습니다.

android:background="@color/colorPrimary" 

누구나 내가 뭘 잘못했는지 알 수 있습니까?

+0

실행중인 Android 버전은 무엇입니까? Android O (베타)와 비슷한 점이 있었지만 거의 발생하지 않았습니다. – matty

+0

SDK 25에서 비슷한 문제가 있습니다. –

+0

문제는 재현 불가능합니다. – azizbekian

답변

1

"AppThemeNight"가 사용되는 것을 어디에서 정의합니까? 나는 당신의 코드로 작은 프로젝트를 설정하고 "AppThemeNight"가 매니페스트에서 사용되고 모든 것이 예상대로 작동하도록 정의했다. 내가 매니페스트의 기준을 "AppThemeNight"를 제거 할 때 응용 프로그램은 다음과 같은 오류 함께 오류가 발생한 : 나는 당신이보고있는 것으로 생각되는

Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f0200c9 a=-1}

, 그래서 당신이 있음을 지정하는 것을 생각하지 마십시오 테마를 사용해야합니다. 그럴 경우 게시 해주십시오. 문제를 해결하기 위해 다시 시도해 보겠습니다. 참고로 다음은 작동하는 테스트 매니페스트입니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.attributes"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppThemeNight"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest>