国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android Studio 升級(jí)到3.0 提示 java.lang.NoClassDefFoundError的解決方法

2019-10-22 18:21:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

解決方法

首先把方法寫出來(lái),起因和經(jīng)過(guò)和原理寫在后面,時(shí)間倉(cāng)促的直接看解決方法吧。

一般出現(xiàn)這個(gè)錯(cuò)都是使用的provided導(dǎo)致的

例如,我的舊配置如下:

Project build.gradle文件:

buildscript { dependencies {  classpath 'com.android.tools.build:gradle:3.0.1'  // need delete in gradle3.x version  classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' }}Module build.gradle文件:apply plugin: 'com.android.library'apply plugin: 'android-apt'android { // ...}configurations { provided}dependencies { // ... // Fyber Annotations provided 'com.fyber:fyber-annotations:1.3.0' apt 'com.fyber:fyber-annotations-compiler:1.4.0' // ...}

改為最新的build.gradle3.x 的配置:

Project build.gradle文件:

buildscript { dependencies {  classpath 'com.android.tools.build:gradle:3.0.1' }}Module build.gradle文件:apply plugin: 'com.android.library'android { // ... // add this code to enable annotationProcessor  javaCompileOptions {   annotationProcessorOptions {    includeCompileClasspath = true   }  }}dependencies { // ... // Fyber Annotations compileOnly 'com.fyber:fyber-annotations:1.3.0' annotationProcessor 'com.fyber:fyber-annotations-compiler:1.4.0' // ...}

更改完以上配置在build Project后即可成功運(yùn)行了。如果不能請(qǐng)往下看:

注意事項(xiàng):

上面的Module build.gralde的配置必須寫在使用注解所在的 Module 中!

例如我在 Module A中的 MainActivity 使用了 @FyberSDK的注解,那么我將上述配置寫在Module A的build.gralde 文件中。

@FyberSDKpublic class MainActivity extends BaseActivity<MainPresenter, MainModel> implements  IBannerDelegate, IMainView,  View.OnClickListener {  //....  }

補(bǔ)充相關(guān)知識(shí)

關(guān)于 apt 的介紹

1、什么是APT?

APT(Annotation Processing Tool)是一種處理注釋的工具,它對(duì)源代碼文件進(jìn)行檢測(cè)找出其中的Annotation,根據(jù)注釋自動(dòng)生成代碼。Annotation處理器在出來(lái)Annotation時(shí)可以根據(jù)源文件中的Annotation生成額外的源文件和其它的文件(文件具體內(nèi)容由Annotation處理器的編寫者決定),APT還會(huì)編譯生成的源文件和原來(lái)的源文件,將它們一起生成class文件。

2、annotationProcessor

annotationProcessor是APT工具中的一種,他是google開發(fā)的內(nèi)置框架,不需要引入,可以直接在build.gradle文件中使用

3、android-apt

android-apt是由一位開發(fā)者自己開發(fā)的apt框架,源代碼托管在這里,隨著Android Gradle 插件 2.2 版本的發(fā)布,Android Gradle 插件提供了名為 annotationProcessor 的功能來(lái)完全代替 android-apt ,自此android-apt 作者在官網(wǎng)發(fā)表聲明最新的Android Gradle插件現(xiàn)在已經(jīng)支持annotationProcessor,并警告和或阻止android-apt ,并推薦大家使用 Android 官方插件annotationProcessor。

其他

 

新配置 對(duì)應(yīng)的過(guò)時(shí)配置 描述
implementation compile module編譯時(shí)可用,module的使用者運(yùn)行時(shí)可用,對(duì)于大量使用library的項(xiàng)目,可以顯著提高編譯時(shí)間,因?yàn)樗梢詼p少構(gòu)建系統(tǒng)重新編譯一些module.大多數(shù)app/test因?yàn)槭褂眠@種配置
api compile module編譯時(shí)可用,module的使用者編譯和運(yùn)行時(shí)可用,這個(gè)和過(guò)時(shí)的compile一樣的。一般是library模塊會(huì)使用它,如果app模塊一定要使用它,必須是在它想暴露api給test模塊使用
compileOnly provided module 編譯時(shí)可用,但是module的使用者,在編譯和運(yùn)行時(shí)均不可用。跟過(guò)時(shí)的provided一樣的。
runtimeOnly apk module和它的使用者,運(yùn)行時(shí)可用.它跟過(guò)時(shí)的apk是一樣.

 

總結(jié)

以上所述是小編給大家介紹的Android Studio 升級(jí)到3.0 提示 java.lang.NoClassDefFoundError,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 朔州市| 漯河市| 新蔡县| 彭山县| 舟山市| 秀山| 琼中| 广东省| 宁化县| 永城市| 芦山县| 屏南县| 墨脱县| 纳雍县| 铜鼓县| 绥化市| 罗平县| 焦作市| 应城市| 白沙| 安西县| 临泽县| 祁门县| 揭东县| 徐水县| 遂川县| 连平县| 沐川县| 安陆市| 大安市| 丹江口市| 盐源县| 林周县| 阳朔县| 望都县| 绍兴市| 荔浦县| 嘉禾县| 辽宁省| 堆龙德庆县| 柘荣县|