У меня есть два разных приложения, оба используют файлы, которые я включил в корень моего проекта 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 за указание в правильном направлении.