未找到 Kitkat 及以下的可绘制 abc_vector_test 资源异常
Posted
技术标签:
【中文标题】未找到 Kitkat 及以下的可绘制 abc_vector_test 资源异常【英文标题】:Drawable abc_vector_test resource not found exception for Kitkat and below 【发布时间】:2017-12-25 14:24:47 【问题描述】:这是我在 Kitkat 或更低版本上运行我的应用程序时的堆栈跟踪
致命异常:主要 进程:com.threesixteen.app,PID:1504 java.lang.RuntimeException:无法启动活动 ComponentInfocom.threesixteen.app/com.threesixteen.app.ui.activities.SplashActivity:android.content.res.Resources$NotFoundException:资源 ID #0x7f080058 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5001) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在 dalvik.system.NativeStart.main(本机方法) 原因:android.content.res.Resources$NotFoundException:资源 ID #0x7f080058 在 android.content.res.Resources.getValue(Resources.java:1123) 在 android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:332) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190) 在 android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:711) 在 android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195) 在 android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:81) 在 android.support.v7.app.AppCompatDelegateImplBase.(AppCompatDelegateImplBase.java:131) 在 android.support.v7.app.AppCompatDelegateImplV9.(AppCompatDelegateImplV9.java:155) 在 android.support.v7.app.AppCompatDelegateImplV11.(AppCompatDelegateImplV11.java:31) 在 android.support.v7.app.AppCompatDelegateImplV14.(AppCompatDelegateImplV14.java:55) 在 android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:205) 在 android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185) 在 android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519) 在 android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) 在 com.threesixteen.app.ui.activities.BaseActivity.onCreate(BaseActivity.java:97) 在 com.threesixteen.app.ui.activities.SplashActivity.onCreate(SplashActivity.java:55) 在 android.app.Activity.performCreate(Activity.java:5231) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 在 android.app.ActivityThread.access$800(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5001) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 在 dalvik.system.NativeStart.main(本机方法)
这是我的 gradle 文件。
buildscript
repositories
maven url 'https://maven.fabric.io/public'
repositories
jcenter()
dependencies
classpath 'io.fabric.tools:gradle:1.+'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories
mavenCentral()
maven url 'https://maven.fabric.io/public'
maven url "https://raw.githubusercontent.com/smilefam/SendBird-SDK-Android/master/"
android
compileSdkVersion 25
buildToolsVersion "26.0.0"
defaultConfig
resConfigs "en"
applicationId "com.threesixteen.app"
minSdkVersion 16
targetSdkVersion 25
versionCode 115
multiDexEnabled true
versionName "1.6.6.5-Debug"
vectorDrawables.useSupportLibrary = true
buildTypes
debug
minifyEnabled false
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
release
minifyEnabled false
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
dexOptions
javaMaxHeapSize "4g"
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
////////////////
////////////////////////////
//////////////////////////////
compile 'com.squareup.okhttp3:okhttp:3.8.0'
compile('com.twitter.sdk.android:twitter:3.0.0@aar')
transitive = true// Contains Picasso
compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar')
transitive = true
compile('io.branch.sdk.android:library:2.+')
exclude module: 'answers-shim'
compile 'com.android.support:appcompat-v7:25.4.0'
compile 'com.android.support:design:25.4.0'
compile 'com.google.android.gms:play-services-location:11.0.2'
compile 'com.google.android.gms:play-services-gcm:11.0.2'
compile 'com.google.android.gms:play-services-auth:11.0.2'
compile 'com.android.support:multidex:1.0.2'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.facebook.android:facebook-android-sdk:4.24.0'
compile 'com.facebook.android:account-kit-sdk:4.20.0'
compile 'com.sendbird.sdk:sendbird-android-sdk:3.0.28'
compile 'com.clevertap.android:clevertap-android-sdk:3.1.2'
compile 'com.kbeanie:image-chooser-library:1.6.0@aar'
compile 'com.isseiaoki:simplecropview:1.1.4'
compile 'com.wang.avi:library:2.1.3'
compile 'com.pkmmte.view:circularimageview:1.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.6.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.airbnb.android:epoxy:2.2.0'
testCompile 'junit:junit:4.12'
apply plugin: 'com.google.gms.google-services'
我也将这行代码放在活动的开头
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
我也提到过这个问题与我的问题相似。 Resource not found Exception for vector drawables
问题是否与我正在使用的任何库有关?资源 id #0x7f080058 指的是 abc_vector_test 在 R 文件中可绘制的。当我点击查看这个drawable的来源时,它位于AppCompat库中并且有一个私有访问权限。
请建议我一些方法来摆脱这个错误。 提前致谢。
【问题讨论】:
【参考方案1】:这是带有 Android Studio Canary 6、alpha6 Gradle 插件和 AAPT2 的 known issue。切换回 aapt、alpha5 或使用 Android Studio 3.0 Canary 7,即可解决此问题。
【讨论】:
它还在。即使是 beta 2【参考方案2】:如果您的“abc_vector_test drawable”为空,您可以在某些设备上看到此错误。空的是:
<vector xmlns:android = "http://schemas.android.com/apk/res/android"
android:width = "24dp"
android:height = "24dp"
android:viewportHeight = "24.0"
android:viewportWidth = "24.0">
<path
android:fillColor = "#00000000"
android:pathData = ""/>
</vector>
【讨论】:
以上是关于未找到 Kitkat 及以下的可绘制 abc_vector_test 资源异常的主要内容,如果未能解决你的问题,请参考以下文章
布局背景未根据 BottomSheet 布局中的可绘制背景进行裁剪
pydot.InvocationException:未找到 GraphViz 的可执行文件