2016-05-30 100 views
0

我正在使用Navigation Drawer進行項目工作,其中一個片段應與Google Map一起使用。無法實現OnMapReadyCallback

我想實現一個OnMapReadyCallback接口,但它不能解析該符號。

我已嘗試更新Google Play服務。 這裏是我的build.gradle:應用

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.zakrzewskibartlomiej.cv_v3" 
     minSdkVersion 19 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'de.hdodenhof:circleimageview:2.0.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:recyclerview-v7:23.4.0' 
    compile 'com.google.android.gms:play-services:9.0.1' 
    compile 'com.google.android.gms:play-services-maps:8.4.0' 


} 

在這裏,我想實現這個

import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 

public class MainActivity extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener, onMapReadyCallback { 

    NavigationView navigationView = null; 
    Toolbar toolbar = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     //set the fragment initially 
     MainFragment fragment = new MainFragment(); 
     android.support.v4.app.FragmentTransaction fragmentTransaction = 
       getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.fragment_container, fragment); 
     fragmentTransaction.commit(); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 
    } 

我怎樣才能解決這個問題?

+0

您有衝突的谷歌播放服務包...'編譯 'com.google.android.gms:發揮服務:9.0.1'' 和'編譯' com.google.android.gms:播放服務地圖:8.4.0'',如果你想要地圖,只使用地圖依賴不是所有的播放服務 –

回答

0

試試這個

在你的依賴列表

compile 'com.google.android.gms:play-services-maps:8.4.0' 

並重新同步添加這個和運行

+0

仍然是相同的,錯誤:(19,69)錯誤:找不到符號類在MapReadyCallback 注意:/用戶/ krzak/AndroidStudioProjects/CV_v3/app/src/main /java/com/zakrzewskibartlomiej/cv_v3/MainActivity.java使用或覆蓋棄用的API。 注意:使用-Xlint:deprecation重新編譯以獲取詳細信息。 :app:compileDebugJavaWithJavac FAILED 錯誤:執行任務':app:compileDebugJavaWithJavac'失敗。 >編譯失敗;詳細信息請參閱編譯器錯誤輸出。 – krzk

+0

@krzk可以刪除編譯'com.android.support:support-v4:23.4.0'行並重新同步一次 – Raghavendra

+0

相同,錯誤:(19,69)錯誤:無法找到符號類onMapReadyCallback 注意:/用戶/krzak/AndroidStudioProjects/CV_v3/app/src/main/java/com/zakrzewskibartlomiej/cv_v3/MainActivity.java使用或覆蓋棄用的API。 注意:使用-Xlint:deprecation重新編譯以獲取詳細信息。 :應用:compileDebugJavaWithJavac失敗 – krzk

4

錯字......你有進口這一點。

import com.google.android.gms.maps.OnMapReadyCallback; 

所以這需要資本

onMapReadyCallback 

此外,請確保您有播放服務相同的版本,如果你打算使用它們的多(儘管你似乎只需要地圖)

compile 'com.google.android.gms:play-services-maps:9.0.1' 
+0

謝謝!我花了這麼多時間在這件小事上!絕對要記住Java是區分大小寫的。 – krzk

+0

歡迎。愚蠢的錯誤,但自動完成將有助於這些錯別字。如果您願意,您可以使用複選標記接受答案 –