项目需要写一个Apk,临时学习一下AS开发,采用的教程是b站上一个社交软件开发的过程。
视频连接
具体的问题出现在第二节,配置完比目的相关依赖文件,在OnCreat()方法里初始化自己的数据库后,在虚拟机里运行了一下app,直接闪退。
再次通过应用菜单进入app,直接报错app keeps stopping.
解决方法:
由于问题很明显地暴露在添加了这一行代码以后:
Bmob.initialize(this,"YourApplicationID");
打个断点调试看看是什么问题吧
单步运行时进入到了Looper.java里先报了一个错:
sources code does not match the bytecode
这里是因为我的模拟器版本和编译使用的API版本不一致,解决方案就是要让两者一致。
以我自己为例,模拟器使用的是API29,但是app里的build.gradle文件却是采用的API30(安装AS应该都会有一个默认的CompileSDK的版本,我的是30),所以需要修改SdkVersion和targetSdkVersion至29,BuildToolVersion采用和本地SDK同API版本的子版本号即可
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.qxapp"
minSdkVersion 21
targetSdkVersion 29
重新build项目以后又遇到了一个报错:
Static interface methods are only supported starting with Android N (–min-api 24)
这个问题搜了一下大家也经常遇到,这里直接贴出我参考的解决方案:
静态方法不支持解决方案
终于单步可以顺利进入到画面跳转函数里了,尝试在模拟器上跑一下:
问题解决。