找不到类'android.graphics.drawable.RippleDrawable'错误

时间:2017-01-31 14:37:17

标签: java android logcat

我试图在手机上运行它,但我只有一个白色屏幕。无法弄清楚这里的错误在哪里......

爪哇

     package make.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView text = (TextView) findViewById(R.id.textView);
        text.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                text.setSelected(true);
            }
        });
    }
}

XML

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false" android:drawable="@color/colorAccent" />
    <item android:state_selected="true" android:drawable="@color/colorPrimary" />
</selector>

错误日志:

01-31 15:19:29.788 31445-31445/make.myapplication E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
01-31 15:19:30.118 31445-31445/make.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
01-31 15:19:29.788 31445-31445/make.myapplication E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
01-31 15:19:30.118 31445-31445/make.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{make.myapplication/make.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class TextView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
    at android.app.ActivityThread.access$700(ActivityThread.java:134)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4867)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class TextView
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143)
    at make.myapplication.MainActivity.onCreate(MainActivity.java:13)
    at android.app.Activity.performCreate(Activity.java:5047)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) 
    at android.app.ActivityThread.access$700(ActivityThread.java:134) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4867) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/my_selector.xml from color state list resource ID #0x7f020053
    at android.content.res.Resources.loadColorStateList(Resources.java:2081)
    at android.content.res.TypedArray.getColorStateList(TypedArray.java:342)
    at android.widget.TextView.<init>(TextView.java:927)
    at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:62)
    at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:58)
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103)
    at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1021)
    at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1080)
    at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143) 
    at make.myapplication.MainActivity.onCreate(MainActivity.java:13) 
    at android.app.Activity.performCreate(Activity.java:5047) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) 
    at android.app.ActivityThread.access$700(ActivityThread.java:134) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4867) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 
    at dalvik.system.NativeStart.main(Native Method) 
 Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: <item> tag requires a 'android:color' attribute.
    at android.content.res.ColorStateList.inflate(ColorStateList.java:226)
    at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:150)
    at android.content.res.ColorStateList.createFromXml(ColorStateList.java:129)
    at android.content.res.Resources.loadColorStateList(Resources.java:2078)
    at android.content.res.TypedArray.getColorStateList(TypedArray.java:342) 
    at android.widget.TextView.<init>(TextView.java:927) 
    at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:62) 
    at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:58) 
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 
    at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1021) 
    at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1080) 
    at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143) 
    at make.myapplication.MainActivity.onCreate(MainActivity.java:13) 
    at android.app.Activity.performCreate(Activity.java:5047) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) 
    at android.app.ActivityThread.access$700(ActivityThread.java:134) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4867) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 
    at dalvik.system.NativeStart.main(Native Method) 

1 个答案:

答案 0 :(得分:1)

将选择器更改为:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="false" android:color="@color/colorAccent" />
        <item android:state_selected="true" android:color="@color/colorPrimary" />
    </selector>