У меня есть некоторые html-файлы в res/raw
, которые я открываю в WebView
. Но после обфускации они не могут загрузить.Android: Не могу найти файл .html в res/raw после обфускации
ответ
Я столкнулся с этой же проблемой. У меня есть html-файл справки в raw и после обфускации. Я запускаю свое приложение и получаю сообщение об ошибке, что файл не найден.
Вот мой HelpActivity класс:
public class HelpActivity extends BaseActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// requesting to turn the title OFF
//requestWindowFeature(Window.FEATURE_NO_TITLE);
// making it full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.help);
setTitle(getString(R.string.help_title));
WebView webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_" + getString(R.raw.how_to_play_zeewee));
}
}
Я исправил эту проблему, добавив следующую строку в моей proguard.cfg файл:
-keepclassmembers class **.R$* {public static <fields>;}
-keep class **.R$*
Вы, наверное, уже есть первая линия, но это делает не препятствует этому вопросу. Добавление второй строки полностью устранило проблему. Я не думаю, что первая строка по-прежнему нужна, но я еще не тестировал ее, и поскольку она в настоящее время работает ...;).
Только добавление второй линии работает для меня! Благодаря! – Harry
добавить следующее в вашем proguard.cfg и посмотреть, если это делает никакой разницы
-keep public class com.yourPackageName.yourAppName.R
-keepclassmembers class **.R$ { public static ; }
Если это так, то после использования ProGuard ничего не получится , Мы не могли загружать макеты, или меню, или значки, или любой другой ресурс. Есть ли у вас доказательства того, что ProGuard запутывает «R»? Я думаю, если бы это было проблемой, файл 'proguard.cfg' в складе содержал бы какой-то класс' -keepclassmembers class **. R $ * '. – CommonsWare
Пожалуйста, смотрите первый ответ здесь:
Prevent Proguard to remove specific drawables
Это работало для меня.
Что вы хотите сказать, не смогли загрузить? Можете ли вы предоставить код, который вы используете для загрузки html-файла? – Calvin
AFAIK, ProGuard не запутывает ресурсы. Каковы ваши доказательства того, что эта проблема связана с ProGuard? Как вы пытаетесь «загрузить» эти данные? Какова ваша ** точная ** ошибка (включая трассировку стека, если это исключение во время выполнения)? – CommonsWare
Я загружаю URL таким образом webView.loadUrl ("file: ///android_res/raw/help.html"); Когда я создаю сборку Obfuscate, я получаю «Не загруженную веб-страницу». Иначе это работает без сборки Obfuscate. – Neha