Пожалуйста помоги. Я пробовал и реализовывал все другие решения, но мне все равно не удалось интегрировать карты Google в свое приложение.
Текущая проблема находится в точке раздувания в моем фрагменте
05-21 00:17:24.629 26619-26619/com.wimedias12.orderr E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.wimedias12.orderr.RestaurantFragments.RestaurantHomeFragment.onCreateView(RestaurantHomeFragment.java:66)
Первое, что появляется в качестве ответа, - это правильно сослаться на библиотеку сервисов Google, но это настройка.
Итак, вот моя текущая конфигурация, и, пожалуйста, помогите мне, если можете.
restaurant_home.xml — макет моего фрагмента, в котором я хочу отображать карту
... Other fragment layout XML code ...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/mapMap"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<fragment
android:id="@+id/mapMapppp"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout>
... Rest of the fragment layout XML ...
Я пробовал с MapView, но тоже не повезло, я читал, что использовать фрагмент проще.
RestaurantHomeFragment.java — код фрагмента
public class RestaurantHomeFragment extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.restaurant_home, container, false); //<-- This line breakes
....
}
Этот фрагмент размещается в SherlockFragmentActivity.
AndroidManifest.xml
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="14" />
<permission android:name="com.wimedias12.orderr.MAPS_RECEIVE" android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="com.wimedias12.orderr.MAPS_RECEIVE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.VPI" >
<uses-library android:name="com.google.android.maps" />
....
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaXxXxXXXxXxxXx-WHmjbRpFz4eOqWBXdqUtQ" />
</application>
И вот мои свойства проекта, просто чтобы убедиться, что библиотека хорошо указана.
Буду признателен за любую оказанную помощь. Спасибо!
ОБНОВЛЕНИЕ:
Ответ @CommonsWare правильный. Но поскольку я использую Android Studio, то есть IntelliJ Idea, я чувствую, что должен ответить, как я заставляю его работать.
Я просто удалил все ссылки из окна «Структура проекта» и снова добавил одну за другой, и каким-то образом это сработало, конфигурация осталась такой же, как на изображении, показанном выше. Я предполагаю, что у IntelliJ были некоторые проблемы со ссылкой на библиотеку.
Так что правильная ссылка на библиотеку - это ответ.
P.S. В итоге я использовал MapView в SherlockFragment. Спасибо за помощь.