Android应用程序太大并且链接禁用了功能
我完成了我的应用程序,现在我正在尝试构建.apk并在手机上进行测试(无需调试,处于发布模式)。Android应用程序太大并且链接禁用了功能
将链接设置为“无”一切工作正常。 这里的问题是,该应用程序太大 - 它的20MB这就是垃圾。
,我读了一篇关于链接: Click Here
所以,我想 “SDK组件只有” 和 “SDK和用户大会”。第二个选项(两个程序集)直接失败,我甚至无法看到我的应用程序的第一个屏幕(登录)。
将链接设置为“Sdk Assemblies Only”我能够进入第一个屏幕(登录屏幕)。该应用程序也是6.73MB什么更好,更符合资格。
现在我面对的问题是,当我点击第一个屏幕上的按钮“登录”时,没有任何反应(通常它会将我重定向到下一个活动)。
的按钮被绑定到一个命令:
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>bin\Release\</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;
}
}
很烦人不得不这样做...但它并不需要很长时间 - 大多数应用程序实际上不绑定许多不同的属性/事件。
谢谢Stuart,那真棒! – eMi 2013-03-25 12:34:38
我改变了进度包括方法
public void Include(ProgressBar progressBar)
{
progressBar.Visibility = progressBar.Visibility;
}
和它的工作。我删除了所有其他人,他们都开始工作。我假设这是工作,因为它正在测试ProgressBar Visibility属性的getter和setter。
如果不是这方面的工作可能有人添加评论正确的理由,让我们大家unsterstand如何在未来
也看到解决这些问题http://stackoverflow.com/questions/14291696/ mvvmcross-android-button-click-binding-not-working-in-release-build/14292504#14292504 – Stuart 2013-03-25 11:58:15
和http://stackoverflow.com/questions/14275499/problems-with-mvvmcross-binding-on-ios-works -on-simulator-but-some-properties and http://stackoverflow.com/questions/11349864/mvvmcross-monotouch-fail-to-bind-properties-on-a-real-ipad-but-it-works-on -th – Stuart 2013-03-25 11:59:02