加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Android App太大,Linking禁用功能

发布时间:2020-12-15 08:00:19 所属栏目:百科 来源:网络整理
导读:我已经完成了我的应用程序,现在我正在尝试构建.apk并在我的手机上进行测试(无需调试,在发布模式下). 将链接设置为“无”一切正常. 这里的问题是,应用程序太大了 – 它的20MB,那就是垃圾. 我读了一篇关于链接的文章: Click Here 所以我尝试了“仅限Sdk Assem
我已经完成了我的应用程序,现在我正在尝试构建.apk并在我的手机上进行测试(无需调试,在发布模式下).

将链接设置为“无”一切正常.
这里的问题是,应用程序太大了 – 它的20MB,那就是垃圾.

我读了一篇关于链接的文章:
Click Here

所以我尝试了“仅限Sdk Assemblies”和“Sdk和用户装配”.第二个选项(两个程序集)直接失败,我甚至无法看到我的应用程序的第一个屏幕(登录).

将链接设置为“仅限Sdk Assemblies”后,我可以进入第一个屏幕(Loginscreen).该应用程序也是6.73MB什么更好,更有资格.

我现在面临的问题是,当我点击第一个屏幕上的“登录”按钮时,没有任何反应(通常会将我重定向到下一个活动).

Button被绑定到命令:

public IMvxCommand LoginCommand
{
    get
    {
         return new MvxRelayCommand(DoLogin);
    }
}

private void DoLogin()
{
     //Do Stuff
}

在DoLogin()中放置一个断点 – 表明它永远不会进入.

那么,我怎么能解决这个问题呢?似乎mvvmcross的功能因任何原因被禁用?

我的主要目标是减少应用程序的大小.

这里重要的是.csproj中必要的部分

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>binRelease&;/OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AndroidUseSharedRuntime>False</AndroidUseSharedRuntime>
<AndroidLinkMode>SdkOnly</AndroidLinkMode>
<AndroidLinkSkip />
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>

解决方法

使用MvvmCross,我通常只使用SDK Assemblies.

然后解决方法链接器失败的MvvmCross(和一般的MonoTouch / MonoDroid问题)然后我添加LinkerPleaseInclude类型文件来欺骗链接器.

示例文件是:

public class LinkerIncludePlease
{
    private void IncludeClick(View view)
    {
        view.Click += (s,e) => { };
    }

    private void IncludeVisibility(View view)
    {
        view.Visibility = view.Visibility + 1;
    }

    private void IncludeRelativeLayout(RelativeLayout relative)
    {
        relative.Visibility = ViewStates.Visible;
    }
}

来自:https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20TwitterSearch/TwitterSearch.UI.Droid/LinkerIncludePlease.cs

不得不这样做很烦人……但它不需要很长时间 – 大多数应用程序实际上并没有绑定到许多不同的属性/事件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读