Ошибка NoClassDefFoundError в spring Android

#android #spring #noclassdeffounderror

#Android #весна #ошибка noclassdeffounderror

Вопрос:

Привет, ребята, я сталкиваюсь с проблемой, связанной с NoClassDefFound: org.springframework.web.client.RestTemplate. Я не знаю, как это будет удалено? Пожалуйста, предложите мне решение.

Ошибка: 05-16 15:59:03.324: ОШИБКА /AndroidRuntime (296): java.lang.Ошибка NoClassDefFoundError: org.springframework.web.client.RestTemplate 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в org.shopzilla.android.синтаксический анализ.SearchResult_Json.json_parse(SearchResult_Json.java:10) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в org.shopzilla.android.search.SearchResultActivity $ 1.onClick(SearchResultActivity.java:26) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в android.view.View.performClick (Просмотр.java:2408) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в android.view.View$performClick.run (Просмотр.java:8816) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в android.os.Handler.handleCallback (обработчик.java:587) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в android.os.Handler.DispatchMessage (обработчик.java:92) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в android.os.Looper.loop (Looper.java:123) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в android.app.ActivityThread.main (ActivityThread.java:4627) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в java.lang.reflect.Метод.Вызывающий (собственный метод) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в java.lang.reflect.Метод.invoke(метод.java:521) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime (296): в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) 05-16 15:59:03.324: ОШИБКА / AndroidRuntime(296): в dalvik.system.NativeStart.main (собственный метод)

код:

 public void json_parse()
    {
        RestTemplate restTemplate = new RestTemplate();
        String url = "http://catalog.bizrate.com/services/catalog/v1/us/product/2?publisherId=50085amp;placementId=1amp;categoryId=1amp;keyword=iphone casesamp;start=0amp;results=10amp;sort=relevancy_descamp;brandId=amp;attFilter=amp;zipCode=90291amp;biddedOnly=amp;minRelevancyScore=100amp;apiKey=58f536aa2fab110bbe0da501150bac1eamp;format=json";
        String result = restTemplate.getForObject(url, String.class, "SpringSource");
        System.out.println("Result:" result);

    }
  

Ответ №1:

Исключение возникает из-за того, что RestTemplate не включен в .apk. Я сам некоторое время боролся с этой проблемой и обнаружил, что я не установил плагин m2eclipse-android-integration. После установки плагина все заработало без проблем. Теперь я могу использовать функцию «Запуск от имени < приложения Android» из Eclipse / STS.

Возможно, вам придется создать свой проект заново, чтобы это заработало.

Ответ №2:

Правильно ли вы добавляете свои файлы Spring jar в папку libs?

  • spring-android-core-1.0.0.RELEASE.jar
  • spring-android-rest-template-1.0.0.RELEASE.jar

Если бы вы попробовали это

Щелкните правой кнопкой мыши на ваших файлах jar в папке libs> BuildPath> Исключить, затем щелкните правой кнопкой мыши на ваших файлах jar в папке libs> BuildPath > Снова включить ваши файлы

Ответ №3:

короткий ответ:

удалите jars из пути сборки и переименуйте lib в libs -> готово

https://jira.springsource.org/browse/ANDROID-78

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

Ответ №4:

поместите .jars в /libs папку, чтобы они были включены в .apk