0
votes

I've been trying to use AppCompat components in my Android Application but for some reason SetContentView method keeps throwing:

Android.Views.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout

Stack trace of exception:

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3540/1cf254db/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (JniObjectReference instance, JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x000a7] in /Users/builder/data/lanes/3540/1cf254db/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12083 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00068] in /Users/builder/data/lanes/3540/1cf254db/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:31 at Android.App.Activity.SetContentView (Int32 layoutResID) [0x00017] in /Users/builder/data/lanes/3540/1cf254db/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.App.Activity.cs:4940 at AttendITAndroidClient.LoginActivity.Initialize () [0x00002] in C:\Users\brakm\onedrive\dokumenti\visual studio 2015\Projects\AttendITDesktopClient\AttendITAndroidClient\Activities\LoginActivity.cs:30 --- End of managed Android.Views.InflateException stack trace --- android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout at android.view.LayoutInflater.inflate(LayoutInflater.java:539) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at md5d9765193e278a5bdda80f23f9bd7e090.LoginActivity.n_onCreate(Native Method) at md5d9765193e278a5bdda80f23f9bd7e090.LoginActivity.onCreate(LoginActivity.java:29) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) ... 18 more Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.TextInputLayout" on path: DexPathList[[zip file "/data/app/AttendITAndroidClient.AttendITAndroidClient-1/base.apk"],nativeLibraryDirectories=[/data/app/AttendITAndroidClient.AttendITAndroidClient-1/lib/x86, /data/app/AttendITAndroidClient.AttendITAndroidClient-1/base.apk!/lib/x86, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.view.LayoutInflater.createView(LayoutInflater.java:583) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) ... 24 more Suppressed: java.lang.ClassNotFoundException: android.support.design.widget.TextInputLayout at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 27 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

Activity is inheriting right class and is using right Theme(AFAIK)(I've tried using "@android:style/Theme.AppCompat" as well)

[Activity(Label = "AttendIT Mobile", MainLauncher = true, Icon = "@drawable/icon", Theme = "@style/Theme.AppCompat")]
public class LoginActivity : AppCompatActivity

Here are (relevant) project references and components. Project references and components.

Am i missing something? Any ideas?

EDIT

Here is my layout xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fitsSystemWindows="true">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="56dp"
    android:paddingLeft="24dp"
    android:paddingRight="24dp">
    <ImageView
        android:src="@drawable/AttendITLogoWhite"
        android:layout_width="wrap_content"
        android:layout_height="72dp"
        android:layout_marginBottom="24dp"
        android:layout_gravity="center_horizontal" />
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp">
        <EditText
            android:id="@+id/UsernameEdit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:hint="Email" />
    </android.support.design.widget.TextInputLayout>
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp">
        <EditText
            android:id="@+id/PasswordEdit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:hint="Password" />
    </android.support.design.widget.TextInputLayout>
    <android.support.v7.widget.AppCompatButton
        android:id="@+id/LoginButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_marginBottom="24dp"
        android:padding="12dp"
        android:text="Login"/>
    <TextView
        android:id="@+id/Settings"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="24dp"
        android:text="No account yet? Create one"
        android:gravity="center"
        android:textSize="16dip" />
 </LinearLayout>

here is my packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Refractored.FloatingActionButton" version="1.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.4.0.1" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v4" version="23.4.0.1" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.AppCompat" version="23.4.0.1" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.RecyclerView" version="22.0.0.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Vector.Drawable" version="23.4.0.1" targetFramework="monoandroid60" />
</packages>

Code that is throwing exception:

private void Initialize()
{

    SetContentView(Resource.Layout.Login); //this method throws exception



    Button button = FindViewById<Button>(Resource.Id.LoginButton);
    button.Click += LoginButtonOnClick;

    TextView textView = FindViewById<TextView>(Resource.Id.Settings);
    textView.Click += SettingsOnClick;

    _loginLoader = new ProgressDialog(this);
    _loginLoader.SetCancelable(false);
    _loginLoader.SetMessage(Resources.GetString(Resource.String.LoginLoaderMessage));

    TimeSpan timeout = new TimeSpan(0, 0, 30);
    BasicHttpBinding binding = new BasicHttpBinding
    {
        Name = "basicHttpBinding",
        MaxBufferSize = 2147483647,
        MaxReceivedMessageSize = 2147483647,
        SendTimeout = timeout,
        OpenTimeout = timeout,
        ReceiveTimeout = timeout
    };      
    _client = new AttendITWCFServiceClient(binding, new EndpointAddress("http://192.168.1.104:55416/AttendITWCFService.svc"));
    _client.TryLoginCompleted += ClientOnTryLoginCompleted;
}

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);
    Initialize();
}

Packages enter image description here Components enter image description here

1
Show us your code for the respective call! Also have you tried cleaning your solution, deleting your bin/obj folders and rebuilding?Jon Douglas
Sometimes cleaning and rebuilding won't do the trick, try closing VS and then clean rebuild your project.JLONG
@JLONG tried everything you guys suggested, sadly nothing worked, added more stuff to answer that i believe might be of use.Aleksandar
Can you please show your whole components and packages folder? I would like to check on somethingJLONG
@JLONG Added. Just jeep in mind that this isn't only project in solution soo many of these packages aren't refrenced by it.Aleksandar

1 Answers

2
votes

The error is that:

java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.TextInputLayout"

Is a Android Support design library, on your case, You are missing that Library on your Package folder based on the screenshots of your project. Adding this Android Support Design Library would solve the problem. Install, close VS, clean rebuild and see of the error still persist. Cheers!