0

Я недавно обновил свой Google играть службы в упадке до пересмотра 12, я реимпортируется Либерал в моем затмение, но после этого у меня исключение нуль-указатель наGoogleplayservices v2 12 дает NullPointerException

map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 

, но я уже инициализирован карта, как

это происходит со всеми старыми проектами, где я использовал Google играть услуги в качестве библиотеки, и я показываю карту Google, и я проверяю в эмуляторе

E DIT: после того, как некоторые освежающее и еще пару раз заново импортировать LIB Теперь у меня эта ошибка

10-26 03:35:44.203: E/AndroidRuntime(1537): FATAL EXCEPTION: main 
10-26 03:35:44.203: E/AndroidRuntime(1537): java.lang.NoClassDefFoundError:com.google.android.gms.R$styleable 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:284) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.Activity.setContentView(Activity.java:1895) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at com.example.googlemapscreenshot.MainActivity.onCreate(MainActivity.java:61) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.Activity.performCreate(Activity.java:5133) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.os.Looper.loop(Looper.java:137) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at android.app.ActivityThread.main(ActivityThread.java:5103) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at java.lang.reflect.Method.invoke(Method.java:525) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
10-26 03:35:44.203: E/AndroidRuntime(1537):  at dalvik.system.NativeStart.main(Native Method) 

это может быть проблема эмулятора?

EDIT согласно GrlsHu:

расположение:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<fragment 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/snap" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Take Snap Shot" /> 

    <ImageView 
     android:id="@+id/imgv" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_gravity="right" /> 
</LinearLayout> 

код Java:

public class MainActivity extends FragmentActivity { 

GoogleMap map; 
Button snap; 
double latti, longi; 
ImageView imgv; 
ArrayList<String> strlist; 
String mPath; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    snap = (Button) findViewById(R.id.snap); 
    imgv = (ImageView) findViewById(R.id.imgv); 
    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 
    map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 


    strlist = new ArrayList<String>(); 

    latti = 17.4721005; 
    longi = 78.3443972; 

    map.addMarker(new MarkerOptions().position(new LatLng(latti, longi)).title("Office").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))).showInfoWindow(); 
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latti,longi), 15.0f)); 

    snap.setOnClickListener(new OnClickListener() { 

     @SuppressLint("NewApi") 
     @Override 
     public void onClick(View v) { 
      SnapshotReadyCallback callback = new SnapshotReadyCallback() { 
       Bitmap bitmap; 

       @Override 
       public void onSnapshotReady(Bitmap snapshot) { 
        bitmap = snapshot; 
        try { 
         mPath = "/mnt/sdcard/"+ "MyMapScreen"; 
         File imageFile = new File(mPath); 
         FileOutputStream out = new FileOutputStream(imageFile); 

         // above "/mnt ..... png" => is a storage path (where image will be stored) + name of image you can customize as per your Requirement 

         bitmap.compress(Bitmap.CompressFormat.PNG, 90, out); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 

      map.snapshot(callback); 
      Uri uri = Uri.fromFile(new File(mPath)); 
      imgv.setImageURI(uri); 
    } 
    }); 
} 
} 

EDIT: Ok моя проблема решена, я, возможно, были некоторые проблемы с моя система, после того, как я перезапустил свою систему, она работает нормально, но теперь у меня есть другая prblem

вы можете увидеть мой код выше, всякий раз, когда им нажатие на кнопку, он должен сделать один снимок и сохранить его в мой SDCard, но дает ни один класс Защиту найден как

   SnapshotReadyCallback callback = new SnapshotReadyCallback() { 

Кто-нибудь знает о snapshotreadycallback и почему я могу получить эту ошибку?

+0

Где мой logcat? – GrIsHu

+0

Что находится в этой строке 'com.example.googlemapscreenshot.MainActivity.onCreate (MainActivity.java:61)'? – GrIsHu

+0

@GrlsHu указывает на эту строку \t \t setContentView (R.layout.activity_main); in oncreate – Ari

ответ

-1

Надеюсь ниже код Willl быть полезным

вместо того, чтобы непосредственно инициализацией map, выполните следующие действия для инициализации map

if (map == null) { 
// Try to obtain the map from the SupportMapFragment. 
    map = ((SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map)).getMap(); 
} 

Внутри этого if condition, написать нужный код.

+0

Я инициализирую карту на месте, создав так, что она будет нулевой после объявления – Ari

+0

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

+0

обновить сервисы google play на устройстве или эмуляторе. –

Смежные вопросы