1、 银联支付:
最近刚接手有由外包公司转接过来的项目,其中还有包括支付宝、微信、银联支付等第三方支付;可奇怪的时银联支付界面打不开(线上的完全没问题),并且闪退,于是在官方文档对照代码后没有问题,百度后依然还是没有发现有问题,最后还是发现原来是 .so文件没有打包到apk中,在Android studio中是这样的:
注意:这种方法是在导入第三方sdk时,把 .so文件添加到libs文件里面的
sourceSets {
main {
jniLibs.srcDirs= [‘libs’]//必须将.so文件需打入apk中
}
}
但是后来在另外一个项目中接入极光推送的sdk时,.so文件是放在src/main/jniLibs下的,应该是这样的:
sourceSets.main {
jniLibs.srcDir ‘src/main/jniLibs’
}
2、System.exit(0)
使用System.exit(0)退出应用或Activity时,activity是不走onDestroy()方法的,使用finish()才会按照activity的生命周期走。
3、一个简单的Toast为什么不显示
可能是手机的设置禁止了,跟代码无关。
4、设置activity为全屏的问题:
我是这么做的:根据网上提供的方法在manifest中为activity添加
android:theme=“@android:style/Theme.NoTitleBar.Fullscreen”
但是直接闪退抛出错误信息:You need to use a Theme.AppCompat theme (or descendant) with thisactivity.
解决办法:
将上面改为: android:theme=“@style/Theme.AppCompat.Light.NoActionBar”
这样就将标题栏去掉,但还是有系统自带的状态栏
在setContentView()方法前面添加:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏
setContentView(R.layout.activity_main);
5、使用shareSdk微信登陆的时候:
wxapi这个包必须在包名的下面(例如:com.baidu.xxx.wxapi.WXEntryActivity),遇见这个问题的原因是在开发的后期
突然要更改包名,结果目录发生了变化,调用微信的登录接口死活不走相关的回掉方法,无奈之下询问客服之后才发现问题。
6、隐藏软键盘:
当前activity 显示软键盘,点击返回键时(不是手机自带的虚拟键),软键盘不会消失,依然显示,此时需要隐藏掉软键盘。
@Override
protected void onRestart() {
super.onRestart();
//默认不显示键盘
getWindow()
.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
7、does not match pach:
Android studio 将class文件打包成dex文件时如果出现 does not match pach 错误,其实路径目录是对的,但是编译器就是不通过,需要在 xxxdex后面加上 --no-strict。即:dx --dex --no-strict --output。