XmlPullParserException Binary XML file line #17 tag requires viewportWidth > 0

前端 未结 7 1805
轻奢々
轻奢々 2021-02-18 15:31

This is a follow up question to this question:

Update Android Support Library to 23.2.0 cause error: XmlPullParserException Binary XML file line #17 tag re

相关标签:
7条回答
  • 2021-02-18 15:46

    For new users only, this problem is fixed in:

    compile 'com.android.support:appcompat-v7:23.2.1'

    0 讨论(0)
  • 2021-02-18 15:46

    For people like me still using Eclipse without Gradle, I had this error with Android Support Library r23.2.0 running on pre-Lollipop devices (API < 21).

    This issue has been fixed in r23.2.1 and I have been able to run my project on API level 16 successfully.

    This version of the library for Eclipse is not available through SDK Manager anymore, however you can manually download it from this link.

    0 讨论(0)
  • 2021-02-18 15:47

    Event after trying the already provided answers, the app was crashing on some devices (mainly Samsung). So along with that, I tried loading vector drawables like this

    Drawable drawable = AppCompatDrawableManager.get().getDrawable(context, R.drawable.resource_id);
    

    This AppCompatDrawableManager internally tries to fetch drawable with various methods:

    Drawable getDrawable(@NonNull Context context, @DrawableRes int resId,
                boolean failIfNotKnown) {
            checkVectorDrawableSetup(context);
    
            Drawable drawable = loadDrawableFromDelegates(context, resId);
            if (drawable == null) {
                drawable = createDrawableIfNeeded(context, resId);
            }
            if (drawable == null) {
                drawable = ContextCompat.getDrawable(context, resId);
            }
    
            if (drawable != null) {
                // Tint it if needed
                drawable = tintDrawable(context, resId, failIfNotKnown, drawable);
            }
            if (drawable != null) {
                // See if we need to 'fix' the drawable
                DrawableUtils.fixDrawable(drawable);
            }
            return drawable;
        }
    

    Thus it works on all android versions and all devices (hopefully).

    Note: Don't try to use Picasso(2.5.2)'s or Glide(3.7.0)'s method to load vector drawables. Because they internally use deprecated getDrawable(@DrawableRes int id) method. Which will result in Resources.NotFoundException on some devices.

    0 讨论(0)
  • 2021-02-18 15:55

    I got this same error in Android Studio 2.2 after I updated my Gradle dependencies to the latest versions but forgot to update the buildToolsVersion of my project.

    I changed:

        compile 'com.android.support:appcompat-v7:22.2.1'
    

    to:

        compile 'com.android.support:appcompat-v7:24.2.1'
    

    While buildToolsVersion remained at "22.0.1" like so:

        buildToolsVersion "22.0.1"
    

    So all I did was to update the buildToolsVersion to 24 like so:

        buildToolsVersion "24"
    

    since it has previously been downloaded with SDK Manager. So check the latest buildToolsVersion from SDK Manager and see if it matches the dependencies version.

    Hope this helps someone.

    0 讨论(0)
  • 2021-02-18 15:58

    You can either switch back to the previous version of the appcompat library (Quick fix):

    compile 'com.android.support:appcompat-v7:23.1.1'
    

    Or keep the current library version and make the appropriate update to your build gradle file as explained by google in version 23.2.0 release note.

    //for Gradle Plugin 2.0+  
    android {  
        defaultConfig {  
            vectorDrawables.useSupportLibrary = true  
        }  
    }
    

    If you are using Gradle 1.5 you’ll instead use

    defaultConfig {
        generatedDensities = []
    }
    
    // This is handled for you by the 2.0+ Gradle Plugin
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }
    

    Don't forget to update your gradle build tool to version 1.5.0 at least or you couldn't use the new parameters like generatedDensities:

    classpath 'com.android.tools.build:gradle:1.5.0'
    

    More infos on why here

    0 讨论(0)
  • 2021-02-18 16:03

    If the issue is in release app version. This solved for my release. I think because if you put shrinkResources true the drawable folders created does not have the drawable files.

        {
            ..
            minifyEnabled true
            shrinkResources false
    
        }
    
    0 讨论(0)
提交回复
热议问题