Android Studio3.0 Canary推出有一段時(shí)間了潮孽,今天導(dǎo)入一個(gè)工程出現(xiàn)了些問題,使用的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及以上庄新。
這時(shí)是可以run到手機(jī)上并運(yùn)行的据途,但是發(fā)現(xiàn)代碼好多地方報(bào)錯泄鹏,截兩張圖如下:
這些問題都是找不到父類方法实胸。包括找不到繼承的方法onCreateOptionsMenu()
,finish()
等他嫡。
這就很奇怪了,于是在繼承的父類AppCompatActivity
一級級往上找庐完,直到這個(gè)地方:
BaseFragmentActivityJB
類找不到钢属,而上面提到方法都在這個(gè)類中。感覺這個(gè)是AS3.0在使用低版本compile sdk的bug门躯,或者根本也不推薦使用淆党,畢竟buildTool使用的最低要求25.
把compile sdk和相關(guān)類庫改成26-beta后可以正常,也找到了BaseFragmentActivityApi16
不再是原來的BaseFragmentActivityJB
讶凉。如下:
試試AS2.x版本的效果
那再AS2.x上使用compile sdk24可以正常呢染乌,看看BaseFragmentActivityJB
類的位置。遂新建了個(gè)工程特意看一下位置懂讯。引入support-v4:24.1.0后:
發(fā)現(xiàn)有個(gè)internal_impl-24.1.0.jar而BaseFragmentActivityJB
就在這個(gè)jar包中荷憋。
在AS3.0中使用的時(shí)候只有class.jar而沒有internal_impl-24.1.0.jar,這就是問題所在了域醇。
over台谊,AS3還是推薦使用25,26的compilesdk和庫吧譬挚。