Android Studio3.0的编译代码错误

Android Studio3.0 Canary推出有一段时间了,今天导入一个工程出现了些问题,使用的gradle配置如下:

    compileSdkVersion 24
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.stone.myapplication"
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

·
·
·

    implementation 'com.android.support:appcompat-v7:24.1.0'
    implementation 'com.android.support:support-v4:24.1.0'
    }

说明一下 AS3.0的buildToolVersion必须在25及以上。

这时是可以run到手机上并运行的,但是发现代码好多地方报错,截两张图如下:

编译报错1.jpg
编译报错2.jpg

这些问题都是找不到父类方法。包括找不到继承的方法onCreateOptionsMenu(),finish()等。

这就很奇怪了,于是在继承的父类AppCompatActivity一级级往上找,直到这个地方:

BaseFragmentActivityJB找不到.jpg

BaseFragmentActivityJB类找不到,而上面提到方法都在这个类中。感觉这个是AS3.0在使用低版本compile sdk的bug,或者根本也不推荐使用,毕竟buildTool使用的最低要求25.

把compile sdk和相关类库改成26-beta后可以正常,也找到了BaseFragmentActivityApi16不再是原来的BaseFragmentActivityJB。如下:

image.png

试试AS2.x版本的效果
那再AS2.x上使用compile sdk24可以正常呢,看看BaseFragmentActivityJB类的位置。遂新建了个工程特意看一下位置。引入support-v4:24.1.0后:

image.png

发现有个internal_impl-24.1.0.jar而BaseFragmentActivityJB就在这个jar包中。

image.png

在AS3.0中使用的时候只有class.jar而没有internal_impl-24.1.0.jar,这就是问题所在了。

over,AS3还是推荐使用25,26的compilesdk和库吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • 一.榜单介绍 排行榜包括四大类: 单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架 混合开发框架:...
    伟子男阅读 5,258评论 0 161
  • 框架:提供一定能力的小段程序 http://www.cnblogs.com/jincheng-yangchaofa...
    姑娘请别为难小僧阅读 7,326评论 0 132
  • 今天是学习理财第15天,小小白一个。也是用简书记录的第一天。可能排版会生涩、图片也不好看,但我想尝试一下,尝试新的...
    金源儿阅读 253评论 0 0