项目需要写一个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)
这个问题搜了一下大家也经常遇到,这里直接贴出我参考的解决方案:
静态方法不支持解决方案

终于单步可以顺利进入到画面跳转函数里了,尝试在模拟器上跑一下:

在这里插入图片描述
问题解决。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐