我有一个在24.0.0上正常运行的Android应用程序 - 下面是我的gradle依赖项:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.android.support:design:24.0.0'
compile 'com.android.support:cardview-v7:24.0.0'
compile 'com.android.support:recyclerview-v7:24.0.0'
compile 'com.android.support:palette-v7:24.0.0'
compile files('libs/ksoap2-android-assembly-3.6.1-jar-with-dependencies.jar')
}
但是我下载了最新的SDK,并且有兴趣升级到24.2.0。由于我需要支持库,因此我将com.android.support:support-v4添加到依赖项中,如下所示:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:support-v4:24.2.0'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0'
compile 'com.android.support:cardview-v7:24.2.0'
compile 'com.android.support:recyclerview-v7:24.2.0'
compile 'com.android.support:palette-v7:24.2.0'
compile files('libs/ksoap2-android-assembly-3.6.1-jar-with-dependencies.jar')
}
这会导致以下异常:
java.lang.NullPointerException: Attempt to invoke virtual method
'android.graphics.drawable.Drawable[] android.widget.TextView.getCompoundDrawables()'
on a null object reference
at android.support.v4.widget.TextViewCompat.getCompoundDrawablesRelative(TextViewCompat.java:285)
在升级时,我是否遗漏了文档中除了包括support-v4之外我应该做的事情?这是我的参考: https://developer.android.com/topic/libraries/support-library/features.html#v4
注意:在支持库版本24.2.0之前,有一个v4支持库。该库分为多个模块以提高效率。为了向后兼容,如果您在Gradle脚本中列出support-v4,则您的APK将包含所有v4模块。
感谢您的帮助!
答案 0 :(得分:6)
升级到支持库版本24.2.0和构建工具24.0.2后,我尝试对包含TextInputLayout的布局进行膨胀时得到完全相同的异常,该布局中没有EditText。
如果我在没有EditText的情况下注释掉TextInputLayout,那么异常就会消失。如果无法做到这一点,我建议回滚到以前版本的支持库,直到解决此问题。
答案 1 :(得分:0)
将您的Android Sdk Build-tools更新为
system
并在模块应用build.gradle
中将它们添加为buildtools尝试清洁&重建你的项目 它有助于从缓存中清除以前应用的依赖项。
<强>更新强>
尝试使用7.0模拟器在Api24中运行此应用程序,因为目标sdk为24
可能它会帮助你
但是因为你的min sdk是21,所以这也适用于那些模拟器。
也遵循这个
Android Studio-&gt;档案 - &gt;使缓存无效并重新启动android studio
无效重启
答案 2 :(得分:0)
可能是你正在包装
以外的东西android.support.design.widget.TextInputEditText
带
android.support.design.widget.TextInputLayout
答案 3 :(得分:0)
我最近遇到了这个问题,发现布局文件中存在以下问题
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="100dp">
</android.support.design.widget.TextInputEditText>
这是来自默认的google登录示例。
删除此修复了nullpointer错误。