1. 程式人生 > >關於百度地圖例子坑人的經驗教訓

關於百度地圖例子坑人的經驗教訓

rem 文件中 ins repo over 相關 百度地圖 dir include

先是把百度地圖API樣例下載來,折騰了幾天,總算編譯通過了。這時寫以下幾點註意的:

通過java或android studio提供的工具,生成SHA1,然後將SHA1填入你自己帳號的控制臺,並填入相應的包名,並最終生成AK,這個我想沒有太多難度,網上教程一堆。

可以通過android studio的Build->Generated signed APK->create new,生成JKS文件,註意這裏的SHA1一定要與控制臺上的SHA一樣,前面我就沒註意,經常換一個PROJECT又重新生成一次JKS(相關的輔助薦可能填的也不一樣),結果老是報錯,對於新手,這也是一個坑點。

可以用命令查看相關信息,請用: keytool -v -list -keystore 具體文件名(如debug.keystore或者JKS文件) 一定要記得加上 -v 參數,不然只能看到SHA1,沒有MD5

1、把百度地圖上下載的libs庫下的相關文件(建議全部,不管x86、ARM,可以少走彎路),有SO、JAR庫,拷唄到你項目下的libs庫下,這一又是一個坑點,百度地圖的helloWorld樣例上只寫了這樣一條。其實這根本不夠,一定要在app下的builds.gradle文件中檢查以下內容(深刻教訓呀。。。。。。。。。)

(1)
dependencies {
compile fileTree(include: [‘*.jar‘], dir: ‘libs‘)
}
(2)
sourceSets {
main {
jniLibs.srcDir ‘libs‘
}
}
(3)
repositories {
flatDir {
dir ‘libs‘
}
}

加上這上面三條信息,按照helloworld就可正常運行。

證書的debug以及realse設置:

Project Structure->Signing,這裏點下+號,增加相應的內容,這個需與你生成JKS文件的信息一致,這裏設置的信息會出現在app下的builds.gradle文件中:

signingConfigs {
config {
keyAlias ‘hello‘
keyPassword ‘XXXXX‘
storeFile file(‘D:/MYMY/hello.jks‘)
storePassword ‘XXXXX‘
}
}

技術分享

然後在Build Types上設置debug\release認證信息,把前面signing設置的名字,填在Signing Config的項目裏,如我的命名為config(這個可以選擇,但不能在這裏修改,如果要改,需要在signing裏的標簽項上作修改)

技術分享

public class MainActivity extends Activity {
private TextureMapView mMapView = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext()); //需要這裏加這條初始化Context以及SDK的信息,在setContentView語句前面
setContentView(R.layout.activity_main);
mMapView = (TextureMapView) findViewById(R.id.bmapView);

另外一點需註意的是,以下內容需在<Application> </Application>之內,不能在外面,而權限<uses-permission android:name需在外面
<meta-data
    android:name="com.baidu.lbsapi.API_KEY"
android:value="xxxxx" />

關於百度地圖例子坑人的經驗教訓