2017-01-18 5 views
0

私は2014年に作成した古いGoogleマップアプリを再活性化しようとしています。これ以外の問題はありませんでした:上記のカスタムメイドのメソッド内でマップを初期化しようとしています同じクラスで、私はこのエラーを取得する:NoSuchMethodError:いいえ仮想メソッドgetMapAsync

 
java.lang.NoSuchMethodError: No virtual method getMapAsync(Lcom/google/android/gms/maps/OnMapReadyCallback;)V in class Lcom/google/android/gms/maps/MapFragment; or its super classes (declaration of 'com.google.android.gms.maps.MapFragment' appears in /data/data/com.packagename.appname/files/instant-run/dex/slice-google-play-services_013f7ca48f60d837bd691f2b8fafce962adefa56-classes.dex) 

は、ここでの方法自体です:

private void initilizeMap() 
{ 
    if (mGoogleMap == null) { 
     MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

     if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
       == PackageManager.PERMISSION_GRANTED) { 
      mGoogleMap.setMyLocationEnabled(true); 
     } else { 
      Toast.makeText(this, "You have to accept to enjoy all app's services!", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

方法initializeMap()その宣言の上と呼ばれ、Androidのモニターは、同様にその行を指しています線として:

MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map); 

フラグメントはレイアウト内で正しく宣言されています。また、私はonMapReadyのメソッドをオーバーライドしました:

@Override 
public void onMapReady(GoogleMap googleMap) 
{ 
    mGoogleMap = googleMap; 
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
      == PackageManager.PERMISSION_GRANTED) { 
     mGoogleMap.setMyLocationEnabled(true); 
    } 
} 

この問題の原因はわかりません。

EDIT(build.gradleの依存関係):

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.android.support:design:25.1.0' 
    compile 'com.google.maps.android:android-maps-utils:0.4+' 
    testCompile 'junit:junit:4.12' 
    compile files('libs/android-google-maps-api13.jar') 
    compile 'com.google.android.gms:play-services:8.4.0' 
    apply plugin: 'com.google.gms.google-services' 
    compile files('libs/google-play-services.jar') 
    compile 'com.google.android.gms:play-services-maps:8.4.0' 
} 
+0

あなたの 'build.gradle'を共有できますか? – antonio

+0

私は依存関係を見たいと思いますか?上記を追加しました。 – variousbulk

答えて

0

実行時に参照MapFragmentインスタンスが期待されるメソッドを持っていません。それはあなたのアプリケーションを実行するために使用する新しいバージョンでコンパイルされたように見えます。

+0

代わりにSupportFragmentMapが必要ですか?それとも他のタイプですか? – variousbulk

関連する問題