2016-09-12 2 views
-1

Я пытался использовать компоненты AppCompat в моей Android Application, но по какой-то метод причина SetContentView продолжает бросать:Невозможно использовать AppCompat управления в проекте Xamarin

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

трассировка стека исключения:

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

активность наследуется правильный класс и используя правильную тему (AFAIK) (Я попытался с помощью «@android: стиль/Theme.AppCompat» а)

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

Ниже приведены ссылки на проекты и их компоненты. Project references and components.

Я что-то не хватает? Есть идеи?

EDIT

Вот мой макет XML:

вот мой 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> 

Код, который бросает исключение:

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(); 
} 

Пакеты enter image description here Компоненты enter image description here

+0

Сообщите нам свой код для соответствующего звонка! Также попробовали ли вы очистить свое решение, удалив папки 'bin/obj' и перестроив? –

+0

Иногда чистка и перестройка не будут делать трюк, попробуйте закрыть VS, а затем очистить перестроить свой проект. – JLONG

+0

@JLONG попробовал все, что вы, ребята, предложили, к сожалению ничего не сработало, добавил больше материала, чтобы ответить, что я считаю, может быть, полезно. – Aleksandar

ответ

2

Ошибка заключается в следующем:

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

ли Android Поддержка библиотека дизайн, на Вашем случае, Вы не хватает, что библиотеки на вашем Папка пакета на основе скриншотов вашего проекта. Добавление этого Android Support Design Library решит проблему. Установите, закройте VS, очистите восстановление и увидите, что ошибка все еще сохраняется. Ура!

+0

Это сработало! Спасибо. – Aleksandar

+0

No Prob. счастливое кодирование! – JLONG

Смежные вопросы