尝试调用接口方法'void android.support.v7.widget.DecorContentParent.setWindowCallback(android.view.Window $ Callback)'

时间:2016-03-11 16:19:14

标签: android nullpointerexception objectanimator

这是我的项目:

project

animated_pa​​th.xml:

<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
                 xmlns:tools="http://schemas.android.com/tools"
                 android:drawable="@drawable/triangle"
                 tools:targetApi="21">
    <target
        android:name="t"
        android:animation="@animator/path"/>
</animated-vector>

path.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator
        android:duration="3000"
        android:propertyName="pathData"
        android:repeatCount="infinite"
        android:repeatMode="reverse"
        android:valueFrom="M 100 100 L 300 100 L 300 300 L 100 300z"
        android:valueTo="M 100 100 L 300 100 L 200 300 L 200 300z"
        android:valueType="pathType"/>
</set>

的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.kycq.reader">

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

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity"
            android:theme="@style/ActivityTheme">
        </activity>
    </application>

</manifest>

LoadingActivity.java:

public class LoadingActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_loading);
    }
}

activity_loading.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.kycq.reader.LoadingActivity">

</RelativeLayout>

styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>

的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.kycq.reader"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        // enable vectorDrawable
        vectorDrawables.setUseSupportLibrary(true)
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    // use 23.2.0
    compile 'com.android.support:appcompat-v7:23.2.0'
}

为什么我在android studio 2.0 beta上使用'animated-vector'时收到错误?

error

令人难以置信的是,当我删除'res / animator'和'animated_pa​​th.xml',然后重建项目时,它就可以了。

它让我发疯,我不知道为什么,以及如何解决这个问题,谁能帮帮我?

可怕的是,有时它会抛出错误:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kycq.reader/com.kycq.reader.LoadingActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

但我已将样式'ActivityTheme'设置为LoadingActivity。

现在我将项目发布到网上:https://drive.google.com/open?id=0B7cSTEJuaMZBLW9VYWM5X0szVlk

4 个答案:

答案 0 :(得分:2)

今天早上有类似的问题。我如何解决它:

  1. 从您的Android清单文件android:theme="@style/AppTheme"中删除应用程序级别属性。
  2. 添加活动级别属性,如下所示:

    [Activity(MainLauncher = true, Theme = "@style/AppTheme")]
    

答案 1 :(得分:1)

也可以试试“clean project”
即使没有对构建版本或清单进行任何更改,我也遇到了这种情况。

"Android Studio: menu> Build -> Clean Project" 做到了。

如果这不能解决您的问题,请尝试 "Android Studio: menu> File -> Invalidate Caches / Restart"

答案 2 :(得分:0)

当您的buildToolsVersion未更新为与playservices及其他依赖项的版本匹配时,会出现此问题

点击此处查看最新版本:

https://developer.android.com/studio/releases/build-tools.html

答案 3 :(得分:0)

就我而言,我执行了这些步骤,然后它就起作用了:

  • 重新安装 Android Studio
  • 构建 -> 清理项目
  • 文件 -> 使缓存无效
  • 并更新 gradle(右下角有一个弹出窗口)