今天學習了百度地圖,遇到了之前沒遇到過的問題,現在來總結下今天遇到的問題~~
1,獲取密鑰的時候
應用名稱顯示輸入正確,但是我點擊提交的時候卻提示
驚呆了,居然有敏感詞彙,剛開始我還以爲是包名和數字簽名(SHA1)其中一個錯了~~重複對了幾次之後把應用名稱的baidu去掉就可以了~(坑呀)
java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager
解決方案:將baidumapapi_base_v3_7_1.jar 導入
3.java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.basemap.JNIBaseMap.Create:()
開始我以爲是SDKInitializer.initialize(getApplicationContext());寫錯位置了,後來發現是
這個沒有導入~~~
上面說道了Application,接觸了這麼久Android也不是很理解~~~今天就花時間學習了下,理解也不是很透徹,如果你有其他的理解歡迎給我留言~
Application的生命週期
public class MyApplication extends Application {
@Override
public void onCreate() {
// 程序創建的時候執行
super.onCreate();
}
@Override
public void onLowMemory() {
// 低內存的時候執行
super.onLowMemory();
}
@Override
public void onTrimMemory(int level) {
// 程序在內存清理的時候執行
super.onTrimMemory(level);
}
@Override
public void onTerminate() {
// 程序終止的時候執行
super.onTerminate();
}
}
我目前的理解是,導入第三方時,如果需要初始化組件的話,寫在Application的onCreate()方法中。
因爲在學習百度地圖的時候我就用到了~~~
public class MyApplication extends Application {
@Override
public void onCreate() {
// 程序創建的時候執行
super.onCreate();
//在使用SDK各組件之間初始化context信息,傳入ApplicationContext
//注意該方法要再setContentView方法之前實現
SDKInitializer.initialize(getApplicationContext());
}
@Override
public void onLowMemory() {
// 低內存的時候執行
super.onLowMemory();
}
@Override
public void onTrimMemory(int level) {
// 程序在內存清理的時候執行
super.onTrimMemory(level);
}
@Override
public void onTerminate() {
// 程序終止的時候執行
super.onTerminate();
}
}