Android 开发过程中怪异小问题集合,持续更新

原文链接:https://juejin.im/post/5a782ad36fb9a063517251ca

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

在使用AlertDialog的show()方法时抛出以上异常:

原因是,App或者Activity使用了Theme.AppCompat.Light.NoActionBar,为AlertDialog单独添加个style即可,style如下:

<style name="myDialog" parent="Theme.AppCompat.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>
复制代码

Dialog初始化时添加:

 AlertDialog.Builder builder
    = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.myDialog));
复制代码

kotlin.NotImplementedError: An operation is not implemented: not implemented

如果你重写了任何方法:方法内部有TODO标示,去掉TODO。

Outdated Kotlin Runtime,Your version of Kotlin runtime in 'org.jetbrains.kotlin:kotlin-stdlib:1.2.10@jar' library is 1.2.10-release-109 (1.2.10), while plugin version is 1.2.21-release-Studio3.0-1. Runtime library should be updated to avoid compatibility problems.

这里需要手动在你的app.gralde中设置kotlin的版本号,为什么呢?因为我的kotiln的插件以及升级到了1.2.21,而gradle中的配置制定的还是老版本的1.2.10,所以运行时的版本号和当前实际的版本号不匹配,如何查看实际的版本号呢?去Android studio 中的Preferences->plugin,搜索kotlin,就可以看到版本号了,或者根据错误提示,我这里的错误提示告诉我,当前的插件版本号为1.2.21:

buildscript {
    //之前是1.2.10,改成实际的版本号
    ext.kotlin_version = '1.2.21'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.taobao.android:weexplugin-gradle-plugin:1.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
复制代码

Kotlin not configured

早上一开Android Studio 项目就无法编译了,提示 Kotlin not configured ,也没有什么修复的选项,解决方案:

因为项目中,在app的gradle文件里,使用了如下依赖,

implementation 'org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version'
复制代码

把这个依赖后面的-jre8去掉,像这样:

implementation 'org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version'
复制代码

重新编译,错误消失。

gradlew: Permission Denied

这个问题遇到N多次了,每次都要百度一下,就是没记性是不是? 解决:先运行

chmod +x gradlew
复制代码

然后再运行你想要运行的命令即可。

Plugin supporting feature (Facet[kotlin-language]) is currently not installed

这个问题是我的Android Studio升级到 3.1版本,但是Kotlin到Plugin还没有升级,去Android Studio到插件管理去升级一下Kotlin即可,这里就不贴图了。

Could not find the AndroidManifest.xml file

看起来AndroidManifest出了问题,实质原因是:Android Studio升级3.2后,很多配置需要升级,比如gradle,kotlin版本等,导致使用AndoirdAnnotation库的项目出了问题,将AndoirdAnnotation库升级为最新版本(4.5.2)重新编辑即可。

展开阅读全文

没有更多推荐了,返回首页