今天学习了百度地图,遇到了之前没遇到过的问题,现在来总结下今天遇到的问题~~
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();
}
}