2015-08-31 2 views
3

Я создаю кросс-платформенное приложение, и я хочу отпустить его для тестеров, но он не работает, когда я развертываю его в режиме выпуска. Что касается исключений, я их не получаю. Как указано в вопросе, он работает в режиме отладки. Приложение просто идет на экран и падает. Я побежал исходное приложение через тест фею и получил это исключение:Ошибка приложения в режиме деблокирования, а не в режиме отладки - Xamarin Forms

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
    ... 2 more 
Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: System.IO.FileNotFoundException: Could not load file or assembly '<Censored: Name of forms class library>.dll' or one of its dependencies. The system cannot find the file specified. 
File name: '<Censored: Name of forms class library>.dll' 
    at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity) [0x00000] in :0 
    at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in :0 
    at (wrapper remoting-invoke-with-check) System.AppDomain:Load (System.Reflection.AssemblyName) 
    at System.Reflection.Assembly.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in :0 
    at Xamarin.Forms.Xaml.XamlParser.GetElementType (Xamarin.Forms.Xaml.XmlType xmlType, IXmlLineInfo xmlInfo, System.Reflection.Assembly currentAssembly, Xamarin.Forms.Xaml.XamlParseException& exception) [0x00000] in :0 
    at (wrapper delegate-invoke) :invoke_Type_XmlType_IXmlLineInfo_Assembly_XamlParseException& (Xamarin.Forms.Xaml.XmlType,System.Xml.IXmlLineInfo,System.Reflection.Assembly,Xamarin.Forms.Xaml.XamlParseException&) 
    at Xamarin.Forms.Xaml.XamlTypeResolver.Resolve (System.String qualifiedTypeName, IServiceProvider serviceProvider, Xamarin.Forms.Xaml.XamlParseException& exception) [0x00000] in :0 
    at Xamarin.Forms.Xaml.XamlTypeResolver.TryResolve (System.String qualifiedTypeName, System.Type& type) [0x00000] in :0 
    at Xamarin.Forms.Xaml.ExpandMarkupsVisitor+MarkupExpansionParser.Parse (System.String match, System.String& remaining, IServiceProvider serviceProvider) [0x00000] in :0 
    at Xamarin.Forms.Xaml.ExpandMarkupsVisitor.ParseExpression (System.String& expression, IXmlNamespaceResolver nsResolver, IXmlLineInfo xmlLineInfo, INode node, INode parentNode) [0x00000] in :0 
    at Xamarin.Forms.Xaml.ExpandMarkupsVisitor.Visit (Xamarin.Forms.Xaml.MarkupNode markupnode, INode parentNode) [0x00000] in :0 
    at Xamarin.Forms.Xaml.MarkupNode.Accept (IXamlNodeVisitor visitor, INode parentNode) [0x00000] in :0 
    at Xamarin.Forms.Xaml.ElementNode.Accept (IXamlNodeVisitor visitor, INode parentNode) [0x00000] in :0 
    at Xamarin.Forms.Xaml.ElementNode.Accept (IXamlNodeVisitor visitor, INode parentNode) [0x00000] in :0 
    at Xamarin.Forms.Xaml.RootNode.Accept (IXamlNodeVisitor visitor, INode parentNode) [0x00000] in :0 
    at Xamarin.Forms.Xaml.XamlLoader.Load (Xamarin.Forms.BindableObject view, System.String xaml) [0x00000] in :0 
    at Xamarin.Forms.Xaml.XamlLoader.Load (Xamarin.Forms.BindableObject view, System.Type callingType) [0x00000] in :0 
    at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[LoginPage] (<Censored>.Login.LoginPage view, System.Type callingType) [0x00000] in :0 
    at <Censored>.Login.LoginPage.InitializeComponent() [0x00000] in :0 
    at <Censored>.Login.LoginPage..ctor() [0x00000] in :0 
    at <Censored>.App.b__0() [0x00000] in :0 
    at <Censored>.ViewFactory.Resolve[LoginViewModel] (<Censored>.Login.LoginViewModel viewModel) [0x00000] in :0 
    at <Censored>.App..ctor() [0x00000] in :0 
    at md5b406f03a919343acc4f3b337a44e1248.MainActivity.n_onCreate(Native Method) 
    at md5b406f03a919343acc4f3b337a44e1248.MainActivity.onCreate(MainActivity.java:28) 
    at android.app.Activity.performCreate(Activity.java:5458) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470) 
    at android.app.ActivityThread.access$900(ActivityThread.java:174) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:146) 
    at android.app.ActivityThread.main(ActivityThread.java:5593) 
    ... 5 more 

Я не могу показать вам исходный код, но я воспроизвел ошибку в новом тестовом растворе. Here - это ссылка на репозиторий с тестовым проектом. Это всего лишь проект с использованием MVVM с Xamarin Forms.

+0

Я пробовал компиляцию с proguard вкл./Выкл. И не работал. – B0nde

+0

Просто попытался отключить компоновщик, и изменений по-прежнему нет. – B0nde

+0

@ B0nde .. Перейти к свойствам проекта> Настройки Android> компоновщик> выберите только sdk assemplies –

ответ

3

Исправлено, вручную удалив все папки obj и все папки bin во всем решении.

Редактировать: Пришел обратно, и теперь это исправление не работает!

2

Если ваше решение работает в режиме отладки, но не в режиме деблокирования, это может быть проблемой с компоновщиком.

Щелкните правой кнопкой мыши по вашему конкретному проекту (не решению) -> Настройки Android -> Linker -> Выберите «None» в Linking. Это будет включать все DLL в библиотеке выпусков.

+0

Я пробовал это исправление, и оно работает ... но недостатком этого является то, что размер пакета .apk для приложения для Android значительно увеличился ... более 3 раз (от 35 Мб до более 135 МБ). –

Смежные вопросы