我升级了我的 android studio 版本,现在我使用的是 2.1.3 版本,我认为这是当前版本。 com.android.support:appcompat-v7 也已升级到 24.2.0。
除了不断出错的导航后退箭头外,一切正常, 这是错误
08-22 18:04:59.470 11403-11403/com.app.oues E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.oues, PID: 11403
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.oues/com.app.oues.Registration}: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020014
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
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:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020014
at android.content.res.Resources.loadDrawable(Resources.java:2101)
at android.content.res.Resources.getDrawable(Resources.java:700)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:346)
这是调用工具栏上的箭头的代码
final Drawable upArrow = ContextCompat.getDrawable(getApplicationContext(), R.drawable.abc_ic_ab_back_material);
getSupportActionBar().setHomeAsUpIndicator(upArrow);
这是我的成绩
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.app.oues"
minSdkVersion 9
targetSdkVersion 24
versionCode 2
versionName "1.0.1"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}}dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0' }
在阅读它之后,我将 vectorDrawables.useSupportLibrary = true
添加到 gradle 但它不起作用,错误不断弹出。如果有人能提供帮助,我将不胜感激。谢谢
最佳答案
我也遇到了 24 版 appCompat 库的问题。在我的堆栈跟踪中,低于 NotFoundException,我有一个 XmlPullParserException,其原因是“无效的可绘制标签向量”。尽管要确保您的矢量可绘制 XML 文件就在您的“可绘制”源文件夹中。此外,我刚刚使用了(已弃用的)getResources().getDrawable() 调用,它似乎有效。我也尝试过您的“ContextCompat”调用,但没有任何改变。我的电话是:
syncButton.setImageDrawable(getResources().getDrawable(R.drawable.ic_sync_timer_day));
这似乎只影响 API 19 设备(未在下方进行测试)。它适用于 API 22、23 和 24 设备(未测试 20 或 21)。
我的修复是回滚到“com.android.support:appcompat-v7:23.2.1”(以及其他相关的 V 23 内容)。现在在 API 19、22、23 和 24 的模拟器中测试正常。
弄清楚如何支持所有口味花了一些时间,但这似乎可行。
我的应用程序 Gradle.build 文件如下所示,尽管我可能在其中包含一些实际上并不需要的东西,因为我尝试了多个帖子中的所有内容(我犯了一次更改不止一件事的错误害怕)。
apply plugin: 'com.android.application'
android {
signingConfigs {
config {
keyAlias 'RaceTac'
keyPassword 'clover99'
storeFile file('C:/Users/Dave/Documents/Dev/AndroidKeyStore.jks')
storePassword 'clover99'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.hubbardsoftware.racetac"
minSdkVersion 16
targetSdkVersion 23
versionCode 14
versionName '1.05'
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
generatedDensities = []
}
// Needed for backward compatibility with Vector graphics
aaptOptions {
additionalParameters "--no-version-vectors"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
// compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.google.android.gms:play-services:9.4.0'
compile 'com.android.support:support-v4:23.2.1'
compile 'com.google.android.gms:play-services-ads:9.4.0'
compile 'com.google.android.gms:play-services-auth:9.4.0'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.android.support:multidex:1.0.1'
}
不确定这是一个直接的答案,但 V 24 似乎确实存在一些问题。
关于升级到支持库 24.2.1 后,Android Studios 在可绘制标签向量上抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089543/