Dalvik не может найти класс внутри внешнего JAR через отражение

Я уже некоторое время делаю код отражения, но в последнее время проблема возникла только из-за внешних JAR-файлов. Здесь обсуждаются JAR-файлы, связанные с HTTPPost http://developer.android.com/reference/org/apache/http/client/methods/HttpPost.html чтобы я мог выполнить запрос POST

Я использую один и тот же IDE Eclipse для кодирования своего кода Java и кода Android в отдельных проектах.

В моем проекте Android я скопировал файлы JAR в папку /libs, и файлы JAR добавлены в зависимости Android.

В проекте Java я добавил зависимости в IDE, чтобы не возникало ошибок кодирования.

Для "компиляции" Java-проекта я использую следующие командные строки

javac -classpath android.jar;httpclient-4.1.2.jar;httpcore-4.1.2.jar;httpmime-4.1.2.jar MyReflectionClass.java

jar -cf MyReflectionClass.jar MyReflectionClass.java

dx --dex --output=classes.dex myreflectionclass.jar

Об ошибках не сообщается.

Эти шаги всегда работали нормально, когда мне до сих пор не требовались внешние JAR-файлы. Кажется, что первой строки недостаточно, чтобы "импортировать" JAR / аннотации (я не очень хорошо знаю эти термины)

Проект Android может загружать класс в проекте Java, и код Java выполняется до этой строки

MultipartEntity ent = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

где я получаю эту ошибку в Logcat

tag = dalvikvm
text = Could not find class 'org.apache.http.entity.mime.MultipartEntity', referenced from method MyReflectionClass.mymethod

Пожалуйста помоги!

1 ответ

В отличие от классов httpclient, классы httpmime не являются частью Android. Вы должны предоставить их самостоятельно (например, поместив их в папку libs/ вашего проекта Android).

Другие вопросы по тегам