未找到 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_testR 文件中可绘制的。当我点击查看这个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 的可执行文件

GetPathFromUri4kitkatAndroid 4.4 kitkat以上及以下根据uri获取路径的方法

AAPT 错误:资源可绘制/...未找到

无法在 Jupyter QtConsole 中绘制颜色条:未找到可映射的...错误