Я пытался использовать компоненты 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
Ниже приведены ссылки на проекты и их компоненты.
Я что-то не хватает? Есть идеи?
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();
}
Сообщите нам свой код для соответствующего звонка! Также попробовали ли вы очистить свое решение, удалив папки 'bin/obj' и перестроив? –
Иногда чистка и перестройка не будут делать трюк, попробуйте закрыть VS, а затем очистить перестроить свой проект. – JLONG
@JLONG попробовал все, что вы, ребята, предложили, к сожалению ничего не сработало, добавил больше материала, чтобы ответить, что я считаю, может быть, полезно. – Aleksandar