Android studio 如何分析错误日志
在Android studio的Terminal中直接操作:gradlew compileDebug --stacktrace
gradlew compileDebug --stacktrace -info或者gradlew compileDebug --stacktrace -debug
gradlew compileDebugSources --stacktrace -info
gradlew compileDebugSources查看错误
Android Studio下常见异常以及分析方法
常见异常
NullPointerException
原因:调用对象的方法或属性,但对象为空。
ClassCastException
原因:类型转换异常。
ActivityNotFoundException
没有在AndroidManifest.xml清单文件注册Activity,或者注册不正确
常见异常的一般分析步骤
1. 在Logcat从下往上找,尽量找到causeBy(会显示哪种异常导致)
2. 找到出异常的类和行号,点击进入对应的行
java.lang.NullPointerException类型
Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
错误提示:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
解决:在xml文件中把View控件写成了view
Gradle类型
Failed to open zip file. Gradle's dependency cache may be corrupt(this sometimes occurs after a network connection timeout.
错误提示:
Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
解决:删除C:\Users\用户名.gradle\wrapper\dists\gradle-版本号-all\”key“\目录下错误未解压的gradle-版本号-all.zip,把自己手动下好的文件复制粘贴进去。
java.lang.NullPointerException 类型
错误提示:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.RelativeLayout.findViewById(int)' on a null object reference
解决:这是个空指针异常,说这个是一个空的引用,在Activity中检查布局是否加载正确,或者检查findViewById。
java.lang.RuntimeException类型
错误提示:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.splashscreen/com.example.splashscreen.WelcomeActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
解决:这个错误是说Theme AppCompat中没有这个主题,需要使用Theme AppCompat中或者子类中包含的主题样式,把在Activity中修改继承的父类把AppCompatActivity改成Activity。
NDK之路
错误提示:
ava.lang.RuntimeException: Error: Flag android.useDeprecatedNdk is no longer supported and will be removed in the next version of Android Studio. Please switch to a supported build system.
解决:需要把gradle.properties中的android.useDeprecatedNdk=true注释掉,NDK改成CMake编译
错误提示:
Error: Your project contains C++ files but it is not using a supported native build system
解决: 在build.gradle 中的 buildType中添加 :
sourceSets{
main {
jni.srcDirs = []
}
}
错误提示:
JNI DETECTED ERROR IN APPLICATION: the return type of CallIntMethod does not match void com.example.ccalljava.JNI.helloFromJava()
解决:在c代码中调用java方法的时候调用错误,C中调用的返回类型与java中返回类型不匹配