アプリが完成し、.apkをビルドして、電話でテストしようとしています(デバッグなし、リリースモード)。
リンクを「なし」に設定すると、すべて正常に機能します。ここでの問題は、アプリが大きすぎることです-20MBで、それはごみです。
リンクに関する記事を読みました: ここをクリックしてください
そこで、「Sdkアセンブリのみ」と「Sdkとユーザーアセンブリ」を試してみました。2番目のオプション(両方のアセンブリ)が直接失敗し、アプリの最初の画面(ログイン)も表示されませんでした。
Linkingを" SdkAssemblies 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>