Проблемы с Xamarin.Forms со встроенными ресурсами и Proguard - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть два разных приложения, оба используют файлы, которые я включил в корень моего проекта Xamarin.Forms.Файлы устанавливаются как встроенные ресурсы в «Build Action», а затем выбираются с использованием приведенного ниже кода.

var assembly = Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream("test.text.json");

Этот подход прекрасно работает со всеми параметрами компиляции, такими как AoT и LLVM, за исключением случаев, когда задействован Proguard,Если приложение скомпилировано с использованием Proguard, оно просто мгновенно принудительно закроется, не имея возможности прочитать файлы.

До сих пор я пытался делать исключения для классов в проекте, используя собственный файл proguard.cfg, которыйустановлен как "ProguardConfiguration" в VS 2017.

-dontobfuscate
-keep class com.companyname.test** { *; }
-keeppackagenames com.companyname.test**

Это не дало никаких результатов.Приложение по-прежнему падает мгновенно.Любое другое приложение, использующее Proguard, работает нормально, пока оно не загружает файлы локально.Должен ли я использовать другой способ загрузки файлов или я могу исключить что-либо еще в моей конфигурации Proguard, чтобы сделать эту работу?

РЕДАКТИРОВАТЬ: Просто обновите этот пост, чтобы привлечь внимание к решению.Оказывается, я решил эту проблему раньше, но по какой-то причине, похоже, вернулся.Вот вывод журнала:

android.view.InflateException: Binary XML file line #20: Binary XML file 
line #20: Error inflating class android.support.v7.widget.FitWindowsFrameLayout

Это то, что я уже добавил к своим общим правилам Proguard без необходимости добавлять специальную конфигурацию Proguard в свой проект.В качестве решения на этот раз я просто добавил эти две строки в мой файл proguard.cfg:

-keep public class android.support.v7.widget.** { *; }
-dontwarn android.support.**

Спасибо Alen.Toma за указание в правильном направлении.

...