AndroidDev 板


LINE

求救,我耗了整整一天,快崩潰了 我用studio,學教學本寫了一個v2的簡易範例,卻總是開不起來,會直接程式停止 後來我發現可能是版本的問題 在build.gradle,把 compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.google.android.gms:play-services:7.3.0' 換回教學本上的版本 compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.google.android.gms:play-services:6.5.87' 就可以開了,可我的問題是.....不能理解為何code在新的版本上會有問題 而我想把code移植到自己寫的app上,所以誰能跟我說如何修改讓在新版本上執行成功 以下是java檔 import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.provider.Settings; import android.support.v4.app.FragmentActivity; import android.os.Bundle; import android.widget.Toast; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.UiSettings; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; public class MapsActivity extends FragmentActivity { private LocationManager manager; private LocationListener locationListener; private GoogleMap mMap; private Marker marker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // 取得系統服務的LocationManager物件 manager = (LocationManager) getSystemService(LOCATION_SERVICE); // 檢查是否有啟用GPS if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { // 顯示對話方塊啟用GPS AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("定位管理") .setMessage("GPS目前狀態是尚未啟用.\n" +"請問你是否現在就設定啟用GPS?") .setPositiveButton("啟用", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 使用Intent物件啟動設定程式來更改GPS設定 Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(i); } }) .setNegativeButton("不啟用", null).create().show(); } setUpMapIfNeeded(); // 初始Google Map } @Override protected void onResume() { super.onResume(); setUpMapIfNeeded(); // 建立定位服務的傾聽者物件 locationListener = new GPSLocationListener(); // 更新位置頻率的條件 int minTime = 1000; // 毫秒 float minDistance = 1; // 公尺 manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance,locationListener); manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, minTime, minDistance,locationListener); } @Override protected void onPause() { super.onPause(); manager.removeUpdates(locationListener); } // 檢查是否需要初始GoogleMap物件 private void setUpMapIfNeeded() { // 檢查是否尚未初始GoogleMap物件 if (mMap == null) { // 使用SupportMapFragment取得GoogleMap物件 mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); UiSettings mapSettings; // 使用介面的設定 mapSettings = mMap.getUiSettings(); mapSettings.setZoomControlsEnabled(true); // 檢查是否成功取得GoogleMap物件 if (mMap != null) { // 指定瀏覽的經緯度座標 double lat = Double.parseDouble("25.06924"); double lng = Double.parseDouble("121.51617"); setUpMap(lat, lng); // 顯示指定座標的地圖 } } } // 新增標記和顯示指定位址附近的地圖 private void setUpMap(double lat, double lng) { LatLng pos = new LatLng(lat, lng); // 建立LatLng物件的座標 if (marker != null) { marker.remove(); // 刪除前一個Marker標記物件 } // 新增Marker標記 marker = mMap.addMarker(new MarkerOptions() .position(pos) .title("Marker")); // 顯示目前位址的附近地圖 CameraPosition cp = new CameraPosition.Builder() .target(pos).zoom(18).bearing(70).tilt(25).build(); mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cp)); } // GPS位址的傾聽者物件 class GPSLocationListener implements LocationListener { @Override public void onLocationChanged(Location current) { double lat, lng; if (current != null) { lat = current.getLatitude(); lng = current.getLongitude(); Toast.makeText(MapsActivity.this, "經緯度座標變更....", Toast.LENGTH_SHORT).show(); setUpMap(lat, lng); } } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } } } 拜託幫幫我,我真的快起笑了。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.214.222
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1434113307.A.79C.html
1F:推 agreerga: Log錯誤訊息呢? 如果程式碼無誤試著更新GoogleService 06/12 20:59
2F:→ agreerga: 更新手機上的版本 06/12 21:00
3F:→ loxyz: 要看錯誤訊息啊 06/12 21:20
4F:→ QQron: 我是在studio用模擬器測試,是要更新模擬器上的手機嗎? 06/12 21:37
抱歉小弟剛學兩個禮拜,log還不太會用和看 event log上什麼都沒寫,只有Gradle build finished 和 running的訊息 logcat上面有一堆紅字,不太清楚哪個是主因, 藍字 06-12 21:44:32.831 6795-6795/com.example.rum.try3 W/GooglePlayServicesUtil﹕ Google Play services out of date. Requires 7327000 but found 6774470 紅字 06-12 21:26:06.345 1620-2015/com.google.process.location E/copresGcore﹕ ObfuscatedGaiaIdLookup: Could not load ObfuscatedGaiaIds: /data/data/com.google.android.gms/files/copresence_gaia_id: open failed: ENOENT (No such file or directory) 06-12 21:26:06.347 1620-2015/com.google.process.location E/copresGcore﹕ Couldn't load settings: /data/data/com.google.android.gms/files/copresence_settings: open failed: ENOENT (No such file or directory) 06-12 21:44:33.109 6795-6795/com.example.rum.try3 E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.rum.try3, PID: 6795 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rum.try3/com.example.rum.try3.MapsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setMapType(int)' on a null object reference ※ 編輯: QQron (59.115.214.222), 06/12/2015 21:47:39
5F:推 agreerga: 不建議用模擬器 有實機跑比較好 設定很麻煩 06/12 21:47
6F:→ agreerga: 我也有開模擬器想跑Map 設定不起來就放棄直接用手機了 06/12 21:48
7F:→ QQron: 或許真的是模擬器手機上版本的問題,完全不知道怎更新 06/12 21:52
8F:→ QQron: 好的,我先用實機看看好了 06/12 21:53
9F:→ QQron: 搞定了 十分感謝 真的是模擬器版本問題 天呀我的時間..... 06/12 21:55
10F:推 WrongHole: 我之前也搞了一兩個禮拜還沒搞好,換genymotion就解決了 06/12 23:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP