我一直想在我的Android應用程序使用程序兼容性組件,但由於某些原因的setContentView方法不斷拋出:不能使用程序兼容性控制在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
活動的繼承權類,並且是使用權主題(據我所知)(我已經嘗試使用「@android:風格/ Theme.AppCompat」以及)
[Activity(Label = "AttendIT Mobile", MainLauncher = true, Icon = "@drawable/icon", Theme = "@style/Theme.AppCompat")]
public class LoginActivity : AppCompatActivity
我這麼想嗎?有任何想法嗎?
編輯
這裏是我的佈局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