studio - tag android
java.lang.UnsupportedOperationException: No se puede convertir el valor en el índice 5 a color: tipo=0x5 (4)
Mi aplicación se bloquea después de actualizar a Android Studio 3 RC1
( Gradle
4, Android Gradle
plugin 3 RC2).
This is the error I am having:
java.lang.RuntimeException: Unable to start activity ComponentInfo{*****}:
android.view.InflateException: Binary XML file line #0: Binary XML file line #0:
Error inflating class com.viewpagerindicator.CirclePageIndicator
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.viewpagerindicator.CirclePageIndicator
Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class com.viewpagerindicator.CirclePageIndicator
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:186)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.raimbekov.android.sajde.zikr.ZikrActivity.onCreate(ZikrActivity.java:195)
at android.app.Activity.performCreate(Activity.java:6975)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.UnsupportedOperationException: Can''t convert value at index 5 to color: type=0x5
10-20 10:48:09.562 6156-6156 E/AndroidRuntime: at android.content.res.TypedArray.getColor(TypedArray.java:473)
at com.viewpagerindicator.CirclePageIndicator.<init>(CirclePageIndicator.java:96)
at com.viewpagerindicator.CirclePageIndicator.<init>(CirclePageIndicator.java:72)
... 34 more
No tuve este problema antes de la actualización (en Android Studio
2). También se describe en github , pero no hay respuesta.
Cambio
compile ''com.viewpagerindicator:library:2.4.1@aar''
a
compile ''com.github.JakeWharton:ViewPagerIndicator:2.4.1''
Funcionará Hay un problema con la biblioteca.
He encontrado el jitpack.io el método más fácil:
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
y entonces:
dependencies {
implementation (''com.github.JakeWharton:ViewPagerIndicator:2.4.1''){
exclude module: ''support-v4''
}
}
Solo para tener en cuenta que tener 2 versiones de la biblioteca de soporte V4 se rompió hasta que excluí una de ellas
Mi proyecto utiliza Android Gradle Plugin 3.0 y compileSdk 27. No pude hacer que funcionara con esta configuración usando las soluciones sugeridas ( compile ''com.github.JakeWharton:ViewPagerIndicator:2.4.1''
) en este hilo.
Se quejaba de que no existían métodos como ViewPager#removeOnPageChangeListener
que se agregaron en la versión 24 de la biblioteca de soporte. Creo que tiene que ver con el hecho de que la biblioteca tiene Android-support-v4.jar directamente incorporado.
No quería pasar por todos mis archivos xml y establecer los atributos mediante programación, así que terminé creando una bifurcación que usa gradle para compilar la biblioteca y compilarSdk / minSdk / support-v4 a versiones más modernas.
Puede encontrar el proyecto aquí https://github.com/splatte/ViewPagerIndicator
Para usarlo en tu proyecto, obténlo de jitpack así:
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
y entonces:
dependencies {
implementation ''com.github.splatte:ViewPagerIndicator:3.0.0''
}
(Debe haber otro proyecto que haga esto en el mar de 4.300 bifurcaciones que tiene ViewPagerIndicator, pero no sabía cómo encontrarlo).
compile ''com.github.JakeWharton:ViewPagerIndicator:2.4.1''
usando jitpack.io
no me funcionó con el plugin de Android Gradle 3.0.
En lugar de eso, tuve que configurar todos los atributos de vista que configuré previamente en el diseño xml con los atributos cpi:
(o app:
:).
Ejemplo
<com.viewpagerindicator.CirclePageIndicator
cpi:fillColor="@color/azure"
cpi:pageColor="@color/white"
cpi:radius="4dp"
cpi:snap="true"
cpi:strokeWidth="0dp" />
Eliminé todos los atributos cpi:
y los configuré todos programáticamente:
circlePageIndicator.setFillColor(ContextCompat.getColor(getContext(), R.color.azure));
circlePageIndicator.setPageColor(ContextCompat.getColor(getContext(), R.color.white));
circlePageIndicator.setRadius((int) (4 * Resources.getSystem().getDisplayMetrics().density));
circlePageIndicator.setSnap(true);
circlePageIndicator.setStrokeWidth(0);