我是Joe,喜歡分享旅遊細節、科技等相關內容,喜歡旅行與科技的你可以與我一同探索新知事,歡迎大家一起討論與分享生活中的細節。
■【社群資訊】
Facebook:https://www.facebook.com/YangJoeTW/
Instagram:https://www.instagram.com/joe_life512/
Twitter:https://ppt.cc/fOIxrx
=============================================
■【使用設備】
相機:GoproHero9 Black、GoproHero6、iPhone12 Pro、iPhone12、LUMIX GH5、Sony ZV1
鏡頭:12-60mm F2.8-4.0
空拍機:DJI Mavic Air
穩定器:ZHIYUN Smooth-Q、DJI Ronin-SC
剪輯軟體:Final Cut Pro、Motion、iMovie
=============================================
■【合作邀約】
Joe Studio 工作室
聯絡人:Joe
E-mail:yan85512@icloud.com
#COVID19 #Google定位追蹤
android studio google map教學 在 緯育TibaMe - 【Android Studio】Google地圖建立與應用 的美食出口停車場
2020/01/06(一) 20:00 直播上課囉!】 【Android Studio】Google地圖建立與應用/ 講師:黃彬 ... ... <看更多>
android studio google map教學 在 [問題] google map 閃退- 看板AndroidDev - 批踢踢實業坊 的美食出口停車場
求救,我耗了整整一天,快崩潰了
我用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://www.ptt.cc/bbs/AndroidDev/M.1434113307.A.79C.html
抱歉小弟剛學兩個禮拜,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
... <看更多>