Я пытаюсь использовать API Google Адреса для Android, но всякий раз, когда я пытаюсь запустить мое приложение, я получаю эту ошибку:java.lang.NoClassDefFoundError: com.google.api.client.http.javanet.NetHttpTransport
04-19 18:27:16.094: E/AndroidRuntime(531): Caused by: java.lang.NoClassDefFoundError: com.google.api.client.http.javanet.NetHttpTransport
04-19 18:27:16.094: E/AndroidRuntime(531): at com.android.FoodFinder.MainActivity.<clinit>(MainActivity.java:38)
Это мой код
package com.android.FoodFinder;
import java.io.IOException;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.json.JsonHttpParser;
import com.google.api.client.json.jackson.JacksonFactory;
import android.app.ListActivity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ListActivity
{
private float distance;
private Location location;
private double latitude;
private double longitude;
private static String keyString = "0JVolnSwRg8xLH0J6d9rUwQH-e770dlWn3kcRuA";
private static String urlString = "https://maps.googleapis.com/maps/api/place/search/json?";
private static final HttpTransport transport = new NetHttpTransport();
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location == null)
{
latitude = 0;
longitude = 0;
}
else
{
latitude = location.getLatitude();
longitude = location.getLongitude();
}
final EditText distanceEdit = (EditText)findViewById(R.id.distance);
final Button confirm = (Button)findViewById(R.id.confirm);
confirm.setOnClickListener(new View.OnClickListener(){
public void onClick(View v)
{
try
{
distance = Float.parseFloat(distanceEdit.getText().toString());
search(distance);
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
}
private void search(float d) throws IOException
{
HttpRequestFactory hrfactory = createRequestFactory(transport);
HttpRequest request = hrfactory.buildGetRequest(new GenericUrl(urlString));
request.getUrl().put("key", keyString);
request.getUrl().put("location", latitude + ", " + longitude);
request.getUrl().put("types", "restaurant");
request.getUrl().put("radius", distance);
request.getUrl().put("sensor", "false");
}
private static HttpRequestFactory createRequestFactory(final HttpTransport transport)
{
return transport.createRequestFactory(new HttpRequestInitializer()
{
public void initialize(HttpRequest request) throws IOException
{
request.addParser(new JsonHttpParser(new JacksonFactory()));
}
});
}
}
ошибка в:
private static final HttpTransport transport = new NetHttpTransport();
я добавил следующую банку п Īles на мой путь сборки:
Обще-каротаж 1.1.1
Google-клиента-клиент-1.8.3-бета
Google-HTTP-клиент-android2-1.8 0,3-бета
Google-клиент-клиент-android3-1.8.3-бета
Google-клиент-клиент-AppEngine-1.8.3-бета
Google-OAuth-клиент-1.8.0-бета
gson-2,1
гуавы-R09
гуавы-11.0.2
HttpClient-4,0 .3
httpcore-4.0.1
джексон-ядро-ASL-1.9.4
jdo2-апи-2,3-ЕВ
-20080701 JSON
jsr305-1.3.9
JUnit-4,8 .2
Protobuf-Java-2.2.0
транзакций апи-1,1
xpp3-1.1.4c
Google-API-клиент-1.8.0-бета
Google-API-клиент-AppEngine-1.8.0-бета
Google-апи-клиент-сервлет-1.8.0
Но я до сих пор удается получить NoClassDefFoundExeception. Что я делаю не так?
Какая версия Android SDK вы используете, r16 или новее? – yorkw