1

I'm new on Android Studio and I have take the project from Aviary example because it handle a complex(at least for me) gradle settings.

So I have decide renaming package name. After that I test my code in some devices(HTC One, Samsung Xperia Z2, Nexus 7 2013 Android 5.X.X) and it worked as expected, but I'm facing issues (exceptions) in other devices(Samsung Galaxy Young 2 4.4.2, Motorola Moto G 4.4.3, Energy System 4.4.2)

Logcat:

09-18 09:06:30.796  28009-28009/com.aviary.android.sample E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.aviary.android.sample, PID: 28009
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aviary.android.sample/es.ric.android.swipe.ActivityLogin}: android.view.InflateException: Binary XML file line #103: Error inflating class <unknown>
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #103: Error inflating class <unknown>
            at android.view.LayoutInflater.createView(LayoutInflater.java:620)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
            at android.app.Activity.setContentView(Activity.java:1937)
            at es.ric.android.swipe.ActivityLogin.setContentView(ActivityLogin.java:32)
            at es.ric.android.swipe.ActivityLogin.onCreate(ActivityLogin.java:25)
            at android.app.Activity.performCreate(Activity.java:5248)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
            at android.app.Activity.setContentView(Activity.java:1937)
            at es.ric.android.swipe.ActivityLogin.setContentView(ActivityLogin.java:32)
            at es.ric.android.swipe.ActivityLogin.onCreate(ActivityLogin.java:25)
            at android.app.Activity.performCreate(Activity.java:5248)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.content.res.Resources$NotFoundException: File res/drawable/transparent_button_selector.xml from drawable resource ID #0x7f02015b
            at android.content.res.Resources.loadDrawable(Resources.java:2099)
            at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
            at android.view.View.<init>(View.java:3572)
            at android.widget.TextView.<init>(TextView.java:623)
            at android.widget.TextView.<init>(TextView.java:618)
            at com.csform.android.uiapptemplate.font.RobotoTextView.<init>(RobotoTextView.java:21)
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
            at android.app.Activity.setContentView(Activity.java:1937)
            at es.ric.android.swipe.ActivityLogin.setContentView(ActivityLogin.java:32)
            at es.ric.android.swipe.ActivityLogin.onCreate(ActivityLogin.java:25)
            at android.app.Activity.performCreate(Activity.java:5248)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1
            at android.content.res.TypedArray.getColor(TypedArray.java:327)
            at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:970)
            at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
            at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:186)
            at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
            at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
            at android.content.res.Resources.loadDrawable(Resources.java:2095)
            at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
            at android.view.View.<init>(View.java:3572)
            at android.widget.TextView.<init>(TextView.java:623)
            at android.widget.TextView.<init>(TextView.java:618)
            at com.csform.android.uiapptemplate.font.RobotoTextView.<init>(RobotoTextView.java:21)
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
            at android.app.Activity.setContentView(Activity.java:1937)
            at es.ric.android.swipe.ActivityLogin.setContentView(ActivityLogin.java:32)
            at es.ric.android.swipe.ActivityLogin.onCreate(ActivityLogin.java:25)
            at android.app.Activity.performCreate(Activity.java:5248)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5086)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
09-18 09:06:30.829    1034-6853/? W/ActivityManager﹕ Force finishing activity com.aviary.android.sample/es.ric.android.swipe.ActivityLogin
09-18 09:06:30.832    1279-2930/? W/ContextImpl﹕ Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1252 android.content.ContextWrapper.sendBroadcast:365 com.motorola.motocare.util.TriggerHelper$TriggerBuilder.send:76 com.motorola.motocare.internal.frameworkevents.PauseResumeTrigger.handleFrameworkEvent:53 com.motorola.motocare.internal.frameworkevents.FwEventMonitor$FrameworkListener.processFrameworkEvent:114
09-18 09:06:31.332    1034-1048/? W/ActivityManager﹕ Activity pause timeout for ActivityRecord{42fee978 u0 com.aviary.android.sample/es.ric.android.swipe.ActivityLogin t215 f}
09-18 09:06:31.335    1279-2930/? W/ContextImpl﹕ Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1252 android.content.ContextWrapper.sendBroadcast:365 com.motorola.motocare.util.TriggerHelper$TriggerBuilder.send:76 com.motorola.motocare.internal.frameworkevents.PauseResumeTrigger.handleFrameworkEvent:53 com.motorola.motocare.internal.frameworkevents.FwEventMonitor$FrameworkListener.processFrameworkEvent:114
09-18 09:06:31.535    1034-1093/? D/WifiStateMachine﹕ handleMessage: E msg.what=151572

res/drawable/transparent_button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"><shape>
            <solid android:color="@color/main_color_grey_300" />

            <corners android:radius="2dp" />
        </shape></item>
    <item android:state_focused="true"><shape xmlns:android="http://schemas.android.com/apk/res/android">
            <solid android:color="@color/main_color_grey_300" />

            <corners android:radius="2dp" />
        </shape></item>
    <item android:state_focused="false"><shape xmlns:android="http://schemas.android.com/apk/res/android">
            <solid android:color="@android:color/transparent" />

            <corners android:radius="2dp" />
        </shape></item>
    <item android:state_pressed="false"><shape xmlns:android="http://schemas.android.com/apk/res/android">
            <solid android:color="@android:color/transparent" /> 
            <corners android:radius="2dp" />
        </shape></item>

</selector>

Where is used? in activity_login_page_social.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/login_social"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:padding="40dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginTop="32dp"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <com.csform.android.uiapptemplate.font.RobotoTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:text="@string/username"
            android:textColor="@android:color/white"
            android:textSize="12sp"
            app:typeface="robotoLight" />

        <EditText
            android:id="@+id/login_page_social_login_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:backgroundTint="@android:color/transparent"
            android:backgroundTintMode="@android:color/transparent"
            android:cursorVisible="true"
            android:drawableBottom="@android:color/transparent"
            android:ems="10"
            android:hint="@string/username"
            android:inputType="textNoSuggestions"
            android:singleLine="true"
            android:textColor="@android:color/white"
            android:textColorHint="@android:color/white"
            android:textSize="35sp" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@android:color/white" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <com.csform.android.uiapptemplate.font.RobotoTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:text="@string/password"
            android:textColor="@android:color/white"
            android:textSize="12sp"
            app:typeface="robotoLight" />

        <EditText
            android:id="@+id/login_page_social_login_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:backgroundTint="@android:color/transparent"
            android:backgroundTintMode="@android:color/transparent"
            android:drawableBottom="@android:color/transparent"
            android:ems="10"
            android:hint="@string/password"
            android:inputType="textNoSuggestions"
            android:singleLine="true"
            android:textColor="@android:color/white"
            android:textColorHint="@android:color/white"
            android:textSize="35sp" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@android:color/white" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:gravity="right" >

        <com.csform.android.uiapptemplate.font.RobotoTextView
            android:id="@+id/login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:background="@drawable/transparent_button_selector"
            android:paddingBottom="12dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="12dp"
            android:text="@string/login"
            android:textColor="@android:color/white"
            android:textSize="14sp"
            app:typeface="robotoMedium" />

        <com.csform.android.uiapptemplate.font.RobotoTextView
            android:id="@+id/register"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:background="@drawable/transparent_button_selector"
            android:paddingBottom="12dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="12dp"
            android:text="@string/register"
            android:textColor="@android:color/white"
            android:textSize="14sp"
            app:typeface="robotoMedium" />
    </LinearLayout>

    <com.csform.android.uiapptemplate.font.FontelloTextView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:padding="0dp"
        android:text="@string/fontello_logo"
        android:textColor="@android:color/white"
        android:textSize="96dp"
        tools:ignore="SpUsage" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:gravity="right"
        android:orientation="vertical" >

        <com.csform.android.uiapptemplate.font.RobotoTextView
            android:id="@+id/skip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:background="@drawable/transparent_button_selector"
            android:paddingBottom="12dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="12dp"
            android:text="@string/skip"
            android:textColor="@android:color/white"
            android:textSize="14sp"
            app:typeface="robotoMedium" />
    </LinearLayout>

</LinearLayout>

RobotoTextView.java (I have reached the limit of 30k chars in this post) https://gist.github.com/rchampa/6a375f6ccd34dbcf3edb

Ofc I've checked if the file res/drawable/transparent_button_selector.xml is present and it does. So I appreciate any kind of help.

Ricardo
  • 7,921
  • 14
  • 64
  • 111

1 Answers1

0

I have finally solved. I just check again if all my resources files are available on android 4.X.X, that is:

  • colors.xml
  • strings.xml
  • dimens.xml
  • anim.xml
  • attrs.xml
  • styles.xml
  • etc

In my case I had a colors.xml file only placed in v21 folder

Ricardo
  • 7,921
  • 14
  • 64
  • 111