2017-12-17 4 views
3

일부 드로어 블 벡터를 추가 한 후 이전 드로잉 중 일부가 작동하지 않는 것으로 나타났습니다 (약 11 개). 나머지는 문제가 없습니다. 제대로 표시됩니다. 나는 자바 클래스의 모든 드로어 블을 image.setImageResource(R.drawable.path_to_image);과 같은 메소드로 링크하며, 대부분은 문제없이 링크되어 있습니다. 몇 가지 문제 만 있습니다.일부 드로어 블을 찾을 수 없습니다.

Unable to find resource: 2131099763 
android.content.res.Resources$NotFoundException: Drawable com.example.example_app:drawable/f_user_achievements_learning1h with resource ID #0x7f060073 
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/f_user_achievements_learning1h.xml from drawable resource ID #0x7f060073 
    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:725) 
    at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571) 
    at android.content.res.Resources.getDrawable(Resources.java:767) 
    at android.content.Context.getDrawable(Context.java:525) 
    at android.widget.ImageView.resolveUri(ImageView.java:840) 
    at android.widget.ImageView.onMeasure(ImageView.java:982) 
    at android.view.View.measure(View.java:19734) 
    at android.widget.TableRow.measureChildBeforeLayout(TableRow.java:222) 
    at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1117) 
    at android.widget.TableRow.onMeasure(TableRow.java:113) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.widget.LinearLayout.forceUniformWidth(LinearLayout.java:1000) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:980) 
    at android.widget.TableLayout.measureVertical(TableLayout.java:473) 
    at android.widget.TableLayout.onMeasure(TableLayout.java:436) 
    at android.view.View.measure(View.java:19734) 
    at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1293) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
    at android.widget.ScrollView.onMeasure(ScrollView.java:340) 
    at android.view.View.measure(View.java:19734) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:911) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
    at android.view.View.measure(View.java:19734) 
    at android.widget.RelativeLayout.measureChild(RelativeLayout.java:676) 
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:479) 
    at android.view.View.measure(View.java:19734) 
    at android.widget.RelativeLayout.measureChild(RelativeLayout.java:676) 
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:479) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:671) 
    at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90) 
    at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1319) 
    at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:736) 
    at android.view.View.measure(View.java:19734) 
    at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1081) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
    at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 
    at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687) 
    at android.view.View.measure(View.java:19734) 
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271) 
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607) 
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:683) 
    at android.view.Choreographer.doFrame(Choreographer.java:619) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857) 
    at android.os.Handler.handleCallback(Handler.java:751) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6077) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
Caused by: java.lang.IllegalArgumentException: Path string cannot be empty. 
    at android.util.PathParser.nCreatePathDataFromString(Native Method) 
    at android.util.PathParser.-wrap1(PathParser.java) 
    at android.util.PathParser$PathData.<init>(PathParser.java:74) 
    at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1556) 
    at android.graphics.drawable.VectorDrawable$VFullPath.inflate(VectorDrawable.java:1507) 
    at android.graphics.drawable.VectorDrawable.inflateChildElements(VectorDrawable.java:693) 
    at android.graphics.drawable.VectorDrawable.inflate(VectorDrawable.java:598) 
    at android.graphics.drawable.DrawableInflater.inflateFromXml(DrawableInflater.java:130) 
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1227) 
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1200) 
    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:715) 
     ... 74 more 

이 내가 그릴 수 링크 자바 클래스의 조각입니다 : 응용 프로그램을 실행하고 나는 그런 오류가 발생했습니다 이러한 드로어 블을 보여 주려 한 후

@Override 
    protected void setChoiceState() { 
     if(achievement.isAchieved()) { 
      image.setAlpha(ITEM_CHOSEN); 
      image.setImageResource(achievement.getResId()); 
     } else { 
      image.setAlpha(ITEM_NOT_CHOSEN); 
      image.setImageResource(R.drawable.f_user_achievements_not_achieved); 
     } 
    } 

achievement.getResId()가 당김하는 경로입니다. 또한 R.drawable.path_to_drawable과 같은 원시 경로로 변경하려고 시도했지만 작동하지 않았습니다. 그러나 다음 줄은 image.setImageResource(R.drawable.f_user_achievements_not_achieved);이 제대로 작동하고 있습니다. 여기

내 .gradle 파일입니다 : 당신이 다른 파일이 필요하면, 바로 댓글을 작성하고 내가 그들에게

편집을 첨부 할 수 있습니다

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.1' 
     classpath 'com.google.gms:google-services:3.1.2' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion '27.0.2' 

    defaultConfig { 
     applicationId "com.example.example_app" 
     vectorDrawables.useSupportLibrary = true 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/DEPENDENCIES' 
    } 

    dexOptions { 
     jumboMode true 
     javaMaxHeapSize "2g" 
    } 
} 

repositories { 
    maven { 
     url "https://maven.google.com" 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile files('libs/gson-2.8.0.jar') 
    compile files('libs/commons-lang-2.3.jar') 
    compile files('libs/httpclient-4.5.3.jar') 
    compile 'org.apache.httpcomponents:httpcore:4.4.1' 
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+' 
    compile 'com.android.support:appcompat-v7:24.1.1' 
    compile 'com.android.support:design:24.1.1' 
    compile 'com.android.support:support-v4:24.1.1' 
    compile 'com.google.android.gms:play-services-ads:11.6.2' 
    compile 'com.google.android.gms:play-services-auth:11.6.2' 
    compile 'com.android.support:multidex:1.0.0' 
    testCompile 'junit:junit:4.12' 
} 

apply plugin: 'com.google.gms.google-services' 

두 개의 추가 드로어 블을 추가했습니다 (Vect 또는 자산) - 작동하지 않았으며 다른 하나는 아무런 문제가 없었습니다. 첫 번째는 작동하지 않지만 초가 제대로 작동하므로 vector drawable을 나타내는 xml 파일에 문제가있을 수 있습니까? 여기

하지 작업 벡터 드로어 블 중 하나에 대한 XML 파일입니다 :

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportWidth="24.000002" 
     android:viewportHeight="24.000002"> 
    <path 
     android:pathData="M12,12m-11.803,0a11.803,11.803 0,1 1,23.605 0a11.803,11.803 0,1 1,-23.605 0" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#ffffff" 
     android:fillColor="#1b1b1b" 
     android:strokeWidth="0.40124387" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="m8.02,15.376 l0,-1.975c0,-0.821 1.742,-1.929 1.742,-1.929l0,-0.662c0,0 -1.742,-1.031 -1.742,-1.852l0,-1.975" 
     android:strokeLineCap="round" 
     android:strokeColor="#ffffff" 
     android:fillColor="#00000000" 
     android:strokeWidth="1.03580773" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="m12.623,15.376 l0,-1.975c0,-0.821 -1.742,-1.929 -1.742,-1.929l0,-0.662c0,0 1.742,-1.031 1.742,-1.852l0,-1.975" 
     android:strokeLineCap="round" 
     android:strokeColor="#ffffff" 
     android:fillColor="#00000000" 
     android:strokeWidth="1.03580773" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="M7.18,5.604L13.463,5.604A0.295,0.295 117.507,0 1,13.759 5.9L13.759,6.087A0.295,0.295 0,0 1,13.463 6.382L7.18,6.382A0.295,0.295 0,0 1,6.885 6.087L6.885,5.9A0.295,0.295 117.507,0 1,7.18 5.604z" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#00000000" 
     android:fillColor="#ffffff" 
     android:strokeWidth="0.39954987" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="M7.18,15.977L13.463,15.977A0.295,0.295 0,0 1,13.759 16.273L13.759,16.459A0.295,0.295 0,0 1,13.463 16.755L7.18,16.755A0.295,0.295 0,0 1,6.885 16.459L6.885,16.273A0.295,0.295 0,0 1,7.18 15.977z" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#00000000" 
     android:fillColor="#ffffff" 
     android:strokeWidth="0.39954987" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="m8.853,15.506 l2.937,0 -1.43,-0.988z" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#ffb3cc" 
     android:fillColor="#ffb3cc" 
     android:strokeWidth="0.43446419" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="m8.909,8.698 l2.804,0c0.314,0.066 -0.754,1.004 -1.399,1.366C9.655,9.709 8.665,8.784 8.909,8.698Z" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#ffb3cc" 
     android:fillColor="#ffb3cc" 
     android:strokeWidth="0.40527168" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="m-21.276,14.911c0.008,0.022 0.418,1.042 0.911,2.265 0.49,1.223 0.9,2.24 0.905,2.256 0.019,0.049 0.873,0.049 0.892,0.003 0.006,-0.019 0.416,-1.037 0.905,-2.259 0.492,-1.223 0.903,-2.243 0.911,-2.265 0.014,-0.033 -0.046,-0.038 -0.418,-0.033l-0.432,0.008 -0.7,1.701c-0.383,0.935 -0.703,1.701 -0.711,1.701 -0.008,0 -0.328,-0.766 -0.711,-1.701l-0.7,-1.701 -0.432,-0.008c-0.372,-0.006 -0.432,0 -0.418,0.033z" 
     android:fillAlpha="1" 
     android:strokeColor="#00000000" 
     android:fillColor="#ffffff"/> 
    <path 
     android:pathData="" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#00000000" 
     android:fillColor="#ffb3cc" 
     android:strokeWidth="0.84933162" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="M17.063,16.438m-2.344,0a2.344,2.344 0,1 1,4.689 0a2.344,2.344 0,1 1,-4.689 0" 
     android:strokeLineCap="round" 
     android:fillAlpha="1" 
     android:strokeColor="#ffffff" 
     android:fillColor="#00000000" 
     android:strokeWidth="0.43581513" 
     android:strokeLineJoin="round" 
     android:strokeAlpha="1"/> 
    <path 
     android:pathData="m16.973,16.438 l0,1.101 0.16,0 0.161,0 0.004,-0.492 0.004,-0.491 0.036,-0.078c0.072,-0.156 0.209,-0.238 0.395,-0.238 0.122,0 0.207,0.033 0.266,0.106 0.08,0.098 0.082,0.105 0.087,0.676l0.004,0.517 0.167,0 0.166,0 0,-0.525c0,-0.58 -0.006,-0.653 -0.073,-0.783 -0.181,-0.36 -0.752,-0.396 -0.997,-0.064l-0.056,0.075 0,-0.453 0,-0.453 -0.161,0 -0.161,0 0,1.101z" 
     android:fillAlpha="1" 
     android:strokeColor="#00000000" 
     android:fillColor="#ffb3cc"/> 
    <path 
     android:pathData="m15.704,15.553 l0,0.155 0.21,0 0.21,0 0,0.885 0,0.885 0.167,0 0.167,0 0,-1.039 0,-1.039 -0.377,0 -0.377,0 0,0.155z" 
     android:fillAlpha="1" 
     android:strokeColor="#00000000" 
     android:fillColor="#ffb3cc"/> 
</vector> 
+0

먼저 이미지 이름을 다시 확인한다. 또한 로그에 빈 오류가 없어야합니다. 해당 경로도 확인하십시오 –

+0

@VivekMishra 어떻게 해야할지 모르기 때문에이 경로를 확인할 수 있습니까? 또한 이름을 확인했는데 정확합니다. – Lotos

+0

해당 경로를 로그에 인쇄하고 해당 경로에 파일이 존재하는지 확인하십시오. –

답변

3

파일의 중간에 빈 경로 데이터가있는 행이 있습니다. 어쩌면 그건 범인이다. (확실하게 보이지 않는다) :

<path 
    android:pathData="" 
    android:strokeLineCap="round" 
    android:fillAlpha="1" 
    android:strokeColor="#00000000" 
    android:fillColor="#ffb3cc" 
    android:strokeWidth="0.84933162" 
    android:strokeLineJoin="round" 
    android:strokeAlpha="1"/> 
+0

예, 그게 문제였습니다. 당신의 도움을 주셔서 대단히 감사합니다! – Lotos

+0

기쁜 마음으로 도와 줬어! 천만에요! –

1

내 경우에는 내가 미리 5.0 문제, 벡터 드로어 블 만이 해결 방법은 나를 위해 그것을 만들 수 있고 발견하더라도 당신을위한 일 :

VectorDrawableCompat imageDrawable = VectorDrawableCompat.create(context.getResources(), R.drawable.path_to_image, context.getTheme()); 
image.setImageDrawable(imageDrawable); 

코드는 Kotlin에서 변환되며 오타 및 작은 오류가있을 수 있습니다.

+0

불행히도 동일한 오류가 발생했습니다 – Lotos

+0

그래서 'VectorDrawableCompat'을 만드는 줄에 충돌이 발생하지 않았습니까? –

+0

예.Hovewer, 이전에 말했듯이, 내가 다른 드로잉을 적절하게 드로잉 할 수 있다면, 오류가 없습니다. – Lotos

관련 문제