Android studio2.3.3升級3.1.2坑

來源:互聯網
上載者:User

標籤:ble   eclipse   lsp   tps   eset   rar   window   clu   src   

原文:80255141

1.grade配置Error: Could not find com.android.tools.build:gradle:2.2.1.解決方案與Maven倉庫有點像:進入D:\software\android\android-studio-ide-145.3276617-windows\android-studio\gradle\m2repository\com\android\tools\build\gradle 將項目中的build.gradle檔案中dependencies { classpath ‘com.android.tools.build:gradle:2.2.1‘} 改為dependencies { classpath ‘com.android.tools.build:gradle:3.1.2‘}2.All flavors must now belong to a named flavor dimension.在module下的build.gradle中添加一行代碼即可解決:android{ ... flavorDimensions "versionCode" ...}3.升級到Android Studio 3.1,重新構建項目時報錯,主要錯誤為:The SourceSet ‘instrumentTest‘ is not recognized by the Android Gradle Plugin. Perhaps you misspelled something?instrumentTest已被廢棄,新的Gradle外掛程式已經不支援。instrumentTest需要修改為androidTest。修改後,sourceSets相關內容類別似:android { buildToolsVersion "27.0.3" compileSdkVersion 24 sourceSets { main { manifest.srcFile ‘AndroidManifest.xml‘ java.srcDirs = [‘src‘] aidl.srcDirs = [‘src‘] renderscript.srcDirs = [‘src‘] res.srcDirs = [‘res‘] assets.srcDirs = [‘assets‘] jniLibs.srcDirs = [‘libs‘] } androidTest.setRoot(‘tests‘) }}4. AAPT2 編譯報錯 AAPT2 error報錯Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details解決:在gradle.properties中關閉APPT2 編譯
1 android.enableAapt2=false
註:如果是eclipse轉到as上的項目,可能沒有gradle.properties檔案,請在項目根目錄中手動建立5.升級完Android Stadio 3.1以後將所有的compile變為implementation 後,clean和rebuild都沒有發現錯誤,唯獨在run的時候出現了以下錯誤:原因及解決辦法
  • 原因:按照android stadio 3.1的要求,需要把gradle版本升級為 4.4及以上,但是gradle 4.4及以上要求將依賴api的compile換成implementation。而implementation聲明的依賴沒辦法傳遞到module以外,即該module 以外module沒辦法引用到implementation聲明的api。
即:module A implementation libA,而 moduleB implementation module A,那麼module B 引導 libA 中的api,不然在build的時候會報org.gradle.api.internal.tasks.compile.CompilationFailedException。
  • 解決辦法:將compile 替換為 api即可,也就是如果有外部參考,則換成:api,剩下的換成:implementation。
樣本:dependencies { api fileTree(dir: ‘libs‘, include: [‘*.jar‘]) testImplementation ‘junit:junit:4.12‘ api ‘com.android.support:support-v4:26.1.0‘ api ‘com.android.support:appcompat-v7:26.1.0‘ api ‘com.google.code.gson:gson:2.8.2‘ api ‘com.j256.ormlite:ormlite-core:4.48‘ api ‘com.j256.ormlite:ormlite-android:4.48‘ ps:解決辦法:Android 6.0(api 23)已經不支援HttpClient了,在build.gradle中 加入 useLibrary ‘org.apache.http.legacy‘就可以了,Error:(633, 16) 錯誤: 找不到符號 符號: 方法 sqrt(float) 位置: 類 FloatMath解決方案原因是Android6.0不支援FloatMath.sin()了,主要有兩個方法可以解決。方法一:用23一下的SDK版本進行編譯。將gradle.build檔案裡(包括project的gradle.build和module的gradle.build)的compileSdkVersion設為23以下。方法二:將上面報錯的地方,即 用Math類替換FloatMath類,Math.sin();方法三 :(float)Math.sqrt 替換 FloatMath.sqrt

Android studio2.3.3升級3.1.2坑

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.