我有非常简单的xamarin经典应用程序,其中包含以下.axml文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
</android.support.constraint.ConstraintLayout>
并关注.cs文件
[Activity(Label = "sa", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);//error throws here
}
}
我找到了.gradle的下一个代码来启用约束布局
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
但是,当然,它在Xamarin.Android中不起作用。我试着安装 Xamarin Android Constraint Layout 1.0.0-beta5
但它不适用于Mono.Android 6.0。
我如何解决我的问题?任何猜测?
答案 0 :(得分:1)
由于某种原因,类android.support.constraint.ConstraintLayout
没有制作dex列表。
有些原因可能是:
使用Classy Shark确定发生了什么(https://github.com/google/android-classyshark)。确保将链接器设置设置为None
,以确保Mono链接器不会将其删除。
答案 1 :(得分:0)
所有我需要的是改变单声道框架版本是android.csproj V7.0
答案 2 :(得分:0)
我最近(实际上是今天)遇到了这个问题,并且能够通过在我的linker settings
中添加例外来解决<assembly fullname="Xamarin.Android.Support.Constraint.Layout">
<type fullname="*" />
</assembly>
<assembly fullname="Xamarin.Android.Support.Constraint.Layout.Solver">
<type fullname="*" />
</assembly>
很显然,各个班级已经联系在一起了(正如乔恩·道格拉斯所建议的那样)。通过添加此异常,可以防止类被链接掉。