又是 Xamarin 的一天!甚至无法构建我的第一个Hello World项目!不足为奇吧?
所以,全新的Xamarin.Android空白项目。启用ProGuard,仅链接到SDK 程序集并继续构建项目。还有瓦拉!!有错误!(等等,我不应该感到惊讶,对吧?毕竟,它是 Xamarin)。这是错误:
“java.exe”退出,代码为 1
双击异常打开Xamarin.Android.Common.Targets文件并指向ProGuard如下标签:
<Proguard
Condition="'$(AndroidEnableProguard)' == 'True' and '$(_ProguardProjectConfiguration)' != ''"
ProguardJarPath="$(ProguardJarPath)"
AndroidSdkDirectory="$(_AndroidSdkDirectory)"
JavaToolPath="$(JavaToolPath)"
ProguardToolPath="$(ProguardToolPath)"
ToolExe="$(ProguardToolExe)"
UseProguard="$(UseProguard)"
JavaPlatformJarPath="$(JavaPlatformJarPath)"
ClassesOutputDirectory="$(IntermediateOutputPath)android\bin\classes"
AcwMapFile="$(_AcwMapFile)"
ProguardCommonXamarinConfiguration="$(IntermediateOutputPath)proguard\proguard_xamarin.cfg"
ProguardGeneratedReferenceConfiguration="$(_ProguardProjectConfiguration)"
ProguardGeneratedApplicationConfiguration="$(IntermediateOutputPath)proguard\proguard_project_primary.cfg"
ProguardConfigurationFiles="$(ProguardConfigFiles)"
JavaLibrariesToEmbed="@(_JarsToProguard);@(_InstantRunJavaReference)"
ExternalJavaLibraries="@(AndroidExternalJavaLibrary)"
DoNotPackageJavaLibraries="@(_ResolvedDoNotPackageAttributes)"
ProguardJarOutput="$(IntermediateOutputPath)proguard\__proguard_output__.jar"
EnableLogging="$(ProguardEnableLogging)"
DumpOutput="$(IntermediateOutputPath)proguard\dump.txt"
PrintSeedsOutput="$(IntermediateOutputPath)proguard\seeds.txt"
PrintUsageOutput="$(IntermediateOutputPath)proguard\usage.txt"
PrintMappingOutput="$(IntermediateOutputPath)proguard\mapping.txt"
ProguardInputJarFilter="$(_AndroidProguardInputJarFilter)"
/>
Run Code Online (Sandbox Code Playgroud)
所以,我最好的猜测是这可能是与ProGuard相关的问题。因此,搜索谷歌并应用了我迄今为止发现的所有修复:
build action为ProGuardConfiguration并添加了必要的自定义行。但仍然,相同的错误指向相同的ProGuard标签。现在,在有人开始攻击我说我可能搞乱了 proguard 配置文件之前,这里是它的链接:
我刚开始使用Xamarin。即使在VS 2019中,也花了一天的时间解决愚蠢的调试问题。无论如何,我想所有阅读这篇文章的Xamarin开发人员都已经知道ar $ e Xamarin有多痛苦。
无论如何,在我的Xmarin.Android(空白)项目中,我试图删除标题为应用程序/项目名称的标题栏(我想是的)。所以,这就是我在说的:
请注意 :
在继续说我尝试过的事情之前,我必须补充一点,所有解决方案都是从Xamarin.Forms相关文章/论坛中找到的。我非常困惑,是否选择Xamarin.Android做出了错误的选择,因为它几乎没有支持。
到目前为止我尝试过的是:
android:theme="@android:style/Theme.NoTitleBar"在AndroidManifest.xml中添加
在调用之前,在内部方法中添加RequestWindowFeature(WindowFeatures.NoTitle);了。MainActivity.csOnCreatebase.OnCreate
结果保持不变。标题栏始终存在。但是,这是Xamarin 的另一个神秘错误(啊,什么也不新鲜,对吧?)我发现了!
从设计师的顶部栏中更改主题时:
更改反映在设计器中。我的意思是,如果我将主题更改为Black NoTitleBar,则标题栏消失了。但是,一旦我启动该应用程序,标题栏就会在模拟器和设计器中弹出。
那么,是这样吗?有什么Xamarin.Android具体的解决方案吗?还是Xamarin.Android由于缺乏支持论坛,我是否真的做出了错误的选择?
编辑1
当我手动更改清单文件并设置时android:theme="@android:style/Theme.NoTitleBar",然后从设计器中,我将主题更改为AppDefault,清单文件似乎保持不变。我的意思是清单文件中声明的主题仍然存在Theme.NoTitleBar。
这就是Activity属性的样子:
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
Run Code Online (Sandbox Code Playgroud)
更改AppTheme时Theme.NoTitleBar会抛出运行时异常提示No resource found with the given name (Theme.NoTitleBar).......
从以下字符串中Regex提取字符串的表达式应该是什么<>:
"MyName"<myname@11.com>
Run Code Online (Sandbox Code Playgroud)
我如何只myname@11.com使用正则表达式在 c# 中提取?我可以提取MyName这是在两者之间""使用表达式:"""([^""]*)"""但我觉得正则表达式很混乱所以似乎无法弄清楚如何提取字符串之间<>:(
我有一个复杂的电子邮件模板,其中包含许多div,section和其他 HTML 元素。HTML模板引用了CSS(上传到服务器)。我使用下面的代码通过 MailKit 发送 HTML 电子邮件:
var message = new MimeMessage();
var bodyBuilder = new BodyBuilder();
bodyBuilder.HtmlBody = File.ReadAllText(pathToHtmlFIle);
message.Body = bodyBuilder.ToMessageBody();
client.Send(message);
Run Code Online (Sandbox Code Playgroud)
但客户端仅收到纯文本形式的所有内容,没有颜色,没有格式。这是预期的结果吗?
与 Xamarin 的另一天。
好吧,让我直接弄清楚这一点:我是 android 开发以及 Xamarin 的新手
所以,我试图View在我的项目中创建一个自定义并尝试inflate从布局设置(或)它的视图。我创建了一个布局并试图从View.
自定义布局.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff">
<EditText android:layout_height="120dp"
android:layout_width="120dp"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
自定义布局.cs
public class Customlayout : LinearLayout
{
public Customlayout(Context context) : base(context)
{
Inin();
}
public Customlayout(Context context, IAttributeSet attrs) : base(context, attrs)
{
Inin();
}
public Customlayout(Context context, IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr)
{
Inin();
}
private void Inin()
{
LayoutInflater inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);
View view …Run Code Online (Sandbox Code Playgroud) PS:我对 Angular 和 JS 都是新手。
在我的新 Angular 7 项目中,我有一个材料数据表组件。通过 REST API,进行调用后GET,我能够填充所需对象的数组。这一切都发生在组件的ngOnInit方法中。(不包括代码,因为它不相关)。
我的问题是,如何将数组绑定到dataSource数据表?在数据表的 HTML 中,我在顶部有:
<table mat-table [dataSource]="dataSource" matSort aria-label="Elements">
....
....
<td mat-cell *matCellDef="let row">{{row.id}}</td>
</...>
Run Code Online (Sandbox Code Playgroud)
在该..DataSource.ts文件中,我有一些属性和方法connect,disconnect定义如下:
export class TestTableItem {
id: number;
}
export class TestTableDataSource extends DataSource<TestTableItem> {
paginator: MatPaginator;
sort: MatSort;
constructor(private TestArray: any[]) {
super();
}
connect(collections: CollectionViewer): Observable<TestTableItem[]> {
return observableOf<TestTableItem[]>(this.TestArray);
}
disconnect() {}
Run Code Online (Sandbox Code Playgroud)
在 中component.ts,我dataSource声明了属性,如上所述,我在ngOnInit() …
我是 WPF/XAML 编码的新手。我正在尝试为矩形形状添加阴影效果。矩形的 XAML 是:
代码 1
<Rectangle HorizontalAlignment="Left" Height="552" Margin="2,10,0,0"
VerticalAlignment="Top" Width="427" StrokeThickness="4"
Fill="#FF484A4D" Grid.Column="1"/>
Run Code Online (Sandbox Code Playgroud)
DropShadowEffect 的代码是:
代码 2
<Rectangle.Effect>
<DropShadowEffect x:name="Dshadow" BlurRadius="10" ShadowDepth="0" Color="Black"/>
</Rectangle.Effect>
Run Code Online (Sandbox Code Playgroud)
问题是,我不能将这两个代码组合/使用在一起。当我在CODE 1之后安排CODE 2 时,它不起作用。我应该如何修复/排列这些代码?
(PS 我是 Android 开发新手,所以希望能多考虑一下。)
我的测试应用程序包含一个自定义视图,如下所示:
(我不会包含此视图的 XML 代码,因为它会使帖子变得不必要的大)
这个自定义视图有一个LinearLayout作为根元素。其中LinearLayout还有 2 个嵌套的LinearLayouts. 尽管一RelativeLayout开始看起来 s 可以使用,但在尝试了所有容器之后,只有 sLinearLayout可以实现这种外观。
问题是我需要动态填充自定义视图的列表(上面的列表)。它的范围可以是 40-80。我尝试在我的测试环境中动态生成 60 个上述自定义视图作为 aRecycleView内部的子视图ScrollView。
在我的测试环境中,在我的物理设备(三星 Galaxy J2)上,我可以看到应用程序的性能有所下降,但下降幅度不大。尽管如此,我仍然可以看到该应用程序使用了过多的设备内存。
我已经阅读了很多关于布局性能的帖子。从文档中我发现使用太多嵌套LinearLayout可能会产生深层且复杂的视图层次结构。因此,我尝试尽可能FrameLayout使用。RelativeLayout
我的情况实际上并不独特。如果您是正在阅读本文的开发人员,并且具有开发一些大型应用程序的经验,那么您肯定会遇到需要多次动态生成自定义视图的情况。那么,这里的建议是什么?在 Facebook 甚至 Facebook Lite 等应用程序中,或者其他具有批量填充的类似自定义视图的应用程序中,它们实际上使用哪些布局来确保最佳性能?鉴于我的情况,我的方法正确吗?