2013-03-04 2 views
6

Я использую flurry sdk в своем приложении, прежде чем добавлять этот файл flurry jar, он отлично работает с любыми ошибками. после добавления файла flurry jar в папку libs. Я получаю эту ошибку, когда компилирую приложение в Eclipse.Ошибка Android «Ошибка конвертации в формат Dalvik с ошибкой 2»?

trouble writing output: Too many methods: 70205; max is 65536. By package: 
    5 android.accessibilityservice 
    1 android.animation 
    2 android.annotation 
315 android.app 
136 android.content 
28 android.content.pm 
47 android.content.res 
35 android.database 
14 android.database.sqlite 
    8 android.gesture 
113 android.graphics 
44 android.graphics.drawable 
    1 android.graphics.drawable.shapes 
11 android.location 
27 android.media 
40 android.net 
    1 android.net.http 
    1 android.net.wifi 
96 android.os 

[2013-03-04 16:42:13 - myapp] Conversion to Dalvik format failed with error 2 

У меня есть представление о том, как решить error 1, но это новая ошибка для меня не в состоянии решить. Я искал много, не получил никакого решения для этого.

Когда я удаляю этот файл jar, он работает нормально. если он имеет в libs, который не может запустить приложение. Почему я получаю эту ошибку? что является разрешением для этого.

+0

Просто очистите и обновите свой проект –

+0

Я сделал это много раз, но не использовал .. –

+0

взгляните на это http://stackoverflow.com/questions/8805713/conversion-to-dalvik-format-failed-with -error-2-adt-16-0-1 – itsrajesh4uguys

ответ

12

Поскольку ошибка trouble writing output: Too many methods: 70205; max is 65536, «разрешение для этого» заключается в том, чтобы уменьшить количество меток примерно на 10%.

Обычно это ошибка в том, что слишком много JAR со слишком большим количеством методов, хотя вполне возможно, что вы написали десятки тысяч методов самостоятельно.

Попробуйте найти JAR, который вам не нужен, и удалите его. Например, вы можете use ProGuard to report the dead code within your app - возможно, есть зависимая JAR некоторой библиотеки, которая обычно нужна библиотеке, но способ использования библиотеки не нужен.

Сам ProGuard также может быть использован только для удаления этого мертвого кода из вашего приложения без всяких нормальных обфускационных материалов. Однако это не является частью обычного процесса сборки, поэтому вам придется как-то сварить скрипт Ant для этого.

+1

Как использовать ProGuard для поиска мертвого кода в моем приложении, можно ли удалить мертвый код из моих файлов jar –

+2

Привет CommonsWare Я пытаюсь прочитать xlsx-файлы в android, и я получил выше указанную ошибку, может дать мне пример proguard или custom ant скрипт, чтобы я мог его решить? –

1

У меня была такая ошибка, потому что я включил Google Apis в свой проект.

1

То, что я наблюдал, мы не должны ставить банки файл непосредственно в папку, как

libs/x.jar 

Когда я создал подпапку внутри libs или любую папку для этого имя как

libs/temp/x.jar 

Вы можете загрузить количество файлов jar в этой папке temp. Таким образом, я смог избежать ошибки. Это просто не обязательно должна быть папка libs. Имя может быть любым.

Это должно быть сделано, только если файлы флага имеют большое количество. В противном случае вы можете поместить прямо в папку libs.

+0

Я действительно не понимаю, как это имеет значение? – mass

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