2014-09-09 2 views
1

Я новичок в разработке приложений для Android. Я изучил некоторые онлайн-уроки и вики и начал разработку приложения, которое будет вызывая API, размещенный на сервере Apache (PHP + SLIM + MySQL). Я создал некоторые из API и успешно протестировал их с RESTClient для Chrome.java.lang.IllegalStateException: Не удалось выполнить метод действия при выполнении метода Retrofit GET в студии Android

Для андроида, после некоторых исследований, я решил использовать модифицированную библиотеку Square, которая, кажется, работает очень эффективно (в 5-6 раз быстрее, чем протокол Apache.http, реализованный на Android и в 2-3 раза быстрее, чем Volley (Google) и Robospice) и очень легкий объем памяти.

Я создал образец Android-проекта (используя бета-версию Android studio 0.8) и реализовал Rertofit, выполнив их документацию. но когда я скомпилировал свой проект и сжег свой apk на свой телефон ... он не может выполнить с помощью «java.lang.IllegalStateException». Ниже приведены подробности моей реализации того же самого.

Я не знаете, как исправить эту ошибку ... я упускаю что-нибудь в manifestfile или не осуществляет какой-либо метод, который я должен реализовать ...

библиотеки (включая все Gradle зависимости) я в том числе

  • Gson 2.3
  • модернизация 1.6.1
  • okhttp 2.0
  • okhttp-URLConnection 2.0
  • Окио 1.0.1

Структура

public class MyStructures { 
        public static class Contributor { 
        public String login; 
        public int contributions; 
        } 
       } 

Интерфейс

public interface MyInterface { 

      @GET("/repos/{owner}/{repo}/contributors") 
      List<Contributor> contributors(
        @Path("owner") String owner, 
        @Path("repo") String repo 
      ); 
     } 

Создание адаптера, вызов REST метод, результат выборки

private static final String API_URL = "https://api.github.com";  
RestAdapter restAdapter = new RestAdapter.Builder() 
         .setEndpoint(API_URL) 
         .build(); 

       // Create an instance of our GitHub API interface. 
       MyInterface myInterface = restAdapter.create(MyInterface.class); 


       // Fetch and print a list of the contributors to this library. 
       List<Contributor> contributors = myInterface.contributors("square", "retrofit"); 
       for (Contributor contributor : contributors) { 
        System.out.println(contributor.login + " (" + contributor.contributions + ")"); 

       } 

файл манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.myapplication" > 
    <!-- added this two permission by looking in to some answer on stackoverflow 
    which i geuss not required for newer android version since googles has given n/w permission by default--> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MyActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

Просьба предоставить полную информацию об исключении, которое вы получаете. –

ответ

0

Мой первый раз эта проблема решается путем добавления следующего разрешения в проявленное

<uses-permission android:name="android.permission.INTERNET" /> 
Смежные вопросы