2011-01-29 4 views
4

Попробовали библиотеку KSOAP2 из консольного приложения, используя Eclipse IDE, говорящую с веб-службой .NET, расположенную по адресу http://www.w3schools.com/webservices/tempconvert.asmx. Нет проблем, легко и прямо. Внедрить код в простой метод, test().не удалось найти класс SoapObject

Проблема началась, когда я хотел, чтобы все работало с приложения для Android.

Вот краткое изложение того, что я сделал (и проблема):

1. Я создал новый Android проект в Eclipse IDE с помощью Android 2.3.1 SDK и я создал также Android Virtual Устройство, основанное на том же SDK. Нет проблем при запуске виртуального устройства. Работал отлично.

2. Затем я добавил тэг использования-разрешения с андроидом: name = "android.permission.INTERNET" в файле AndroidManifest.xml.

3. После этого я добавил библиотеку KSOAP2 точно так же, как и при создании консольного приложения.

4. Теперь я добавил метод test(), ранее проверенный и проверенный, включая правильные операторы импорта. Все выглядело хорошо. Нет предупреждений.

5. Составитель и начал проект, и на первой строке кода, который я получил отказ загрузчика классов из SoapObject, то есть «не смог найти» org.ksoap2.serialization.SoapObject. Строка кода выглядела примерно так: SoapObject objSoapTest = новый SoapObject («http://tempuri.org/», «FahrenheitToCelsius»);

Попытался выяснить, может ли он обнаружить какой-либо другой класс в одном пакете, поэтому я добавил эту строку кода перед указанным выше кодом: PropertyInfo objPropertyInfo = new PropertyInfo();

Получена такая же проблема ... "не удалось найти" org.ksoap2.serialization.PropertyInfo.

В чем проблема? Попробовали изменить «Заказ и экспорт» в Java Build Path, но без результата. Нужно ли мне помещать эту библиотеку KSOAP2, где у меня есть файлы Android SDK? Я хардкорный программист на C++, поэтому у меня не так много опыта с Eclipse IDE и т. Д., Поэтому мне действительно нужно дать совет по этому вопросу.

В дополнение к вышесказанному, я также создал приложение Java Swing, никаких проблем для подключения к веб-службе .net. Имеет ли AVD какие-либо ограничения в отношении доступа к определенным библиотекам? Нужно ли добавлять какие-либо другие разрешения?

Btw 1. Я протестировал другие приложения для Android, подключился к Интернету, потоковым изображениям в ListView, и он работал нормально.

Btw 2. Я использую Windows 7

Все мое самое лучшее!

+0

является шагом ** 3 ** что-то вроде: щелкните правой кнопкой мыши по папке проекта -> путь сборки -> добавить внешнюю банку? вот как я это сделал. – bigstones

+0

Да, это именно то, что я сделал ... – Stefan

+0

Stefan, вы поняли это? У меня такая же проблема. Сбой приложения при первом вызове kSOAP с ... SoapObject request = new SoapObject (NAMESPACE, METHOD_NAME); Спасибо –

ответ

0

Убедитесь, что вы включили банку: http://developer.android.com/guide/appendix/faq/commontasks.html#addexternallibrary

+0

Спасибо за ваш быстрый ответ! Да, я добавил новую переменную KSOAP2 и добавил путь к переменной. Также добавили библиотеку прямо без имени, без изменений. Тот же результат. Работала идеально с консольным приложением. У меня есть исключение, InvocationTargetException. В режиме отладки я также получил некоторую информацию, сообщающую мне, что у android.jar нет исходной привязки. Странно, havent каким-либо образом изменил расположение файла или структуры папок. – Stefan

0

Я решил эту проблему, добавив в KSOAP2 .JAR как внешний и убедившись, что .JAR был проверен на вкладке Порядок и экспорта

1

попробовать этот путь .. ,

1. Right click on your project and go to Properties. 
2. go to java build path..//which is on the 5th position on left side 
3. go to Order and Export tab. 
4. check(Tick Mark) on your selected jar file. and click ok. 
5. Now, clean your project and Run.