欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android.enableD8.desugaring?=?false引發(fā)問題解決

 更新時間:2023年03月31日 10:52:43   作者:kevinEegets  
這篇文章主要為大家介紹了android.enableD8.desugaring?=?false引發(fā)問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

問題:

Kotlin升級引起的類找不到情況[其實跟Kotlin版本無關(guān)]

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/LifecycleRegistry;
androidx.lifecycle.ProcessLifecycleOwner.<init>(ProcessLifecycleOwner.java:62)
androidx.lifecycle.ProcessLifecycleOwner.<clinit>(ProcessLifecycleOwner.java:89)
androidx.lifecycle.ProcessLifecycleOwner.init(ProcessLifecycleOwner.java:103)
androidx.lifecycle.ProcessLifecycleOwnerInitializer.onCreate(ProcessLifecycleOwnerInitializer.java:38)
android.content.ContentProvider.attachInfo(ContentProvider.java:2121)
android.content.ContentProvider.attachInfo(ContentProvider.java:2094)
android.app.ActivityThread.installProvider(ActivityThread.java:7900)
android.app.ActivityThread.installContentProviders(ActivityThread.java:7441)
android.app.ActivityThread.handleBindApplication(ActivityThread.java:7334)
android.app.ActivityThread.access$2400(ActivityThread.java:308)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2295)
ndroid.os.Handler.dispatchMessage(Handler.java:110)
android.os.Looper.loop(Looper.java:219)
android.app.ActivityThread.main(ActivityThread.java:8347)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.LifecycleRegistry" on path: DexPathList[[dex file "InMemoryDexFile[cookie=[0, 3991625136]]", zip file "/data/app/com.secoo-4gTkhUPR4gWOZn_7R-7U9A==/base.apk"],nativeLibraryDirectories=[/data/app/com.secoo-4gTkhUPR4gWOZn_7R-7U9A==/lib/arm, /data/app/com.secoo-4gTkhUPR4gWOZn_7R-7U9A==/base.apk!/lib/armeabi-v7a, /system/lib, /hw_product/lib]]

最近公司項目打算升級kotlin至1.4.10版本, 興致沖沖的修改了版本,緊接著就是兩天的折磨期,程序一直出現(xiàn)ClassNotFoundExceptionNoClassDefFoundError,而且?guī)缀趺看螆蟮牟皇峭粋€類找不到,而是隨機(jī)的。后來反編譯代碼,查找找不到的類,果然在編譯生成的classs.jar中找不到對應(yīng)的類,所以懷疑是分包引起的異常。

開始逛國內(nèi)外各大網(wǎng)站,還是沒找到原因。最后使用最原始的方案,注掉一段段代碼試,果然在堅持下,發(fā)現(xiàn)了貓膩,最終找到是因為項目根目錄下gradle.properties中的android.enableD8.desugaring = false搞的鬼。

既然找到原因了,那么就開始找扒一扒為什么看似八竿子打不著的兩處修改會有關(guān)聯(lián)呢?

大致的原因:

kotlin升級導(dǎo)致引入了大量代碼,這些代碼使得項目達(dá)到一個臨界值【猜想】,此時又關(guān)閉了dex包的脫糖處理,導(dǎo)致編譯會在transforms生成desugar目錄,desugar先進(jìn)行脫糖,然后再通過D8的編譯器進(jìn)行編譯,此時會在desugar目錄中生成大量的jar文件,而如果開啟了android.enableD8.desugaring = true,那么就會省略了desugar脫糖操作,將脫糖步驟集成進(jìn)D8編譯器,這樣會省去了desugar目錄中的大量文件。

接下來我們看看開啟脫糖和關(guān)閉脫糖transforms文件下生成的文件具體信息。

關(guān)閉脫糖的操作

開啟脫糖的操作

如上我們所說,當(dāng)開啟脫糖時,編譯器生成的編譯文件中沒有desugar及其下的大量文件,直接將脫糖步驟集成進(jìn)了D8編譯器。

另外一點(diǎn):在Android Studio3.1之后版本,gradle默認(rèn)是開啟了脫糖操作的,也就是:

android:enableD8=true
android.enableD8.desugaring = true

參考自:

http://www.dbjr.com.cn/article/143221.htm

stackoverflow.com/questions/4…

以上就是android.enableD8.desugaring = false引發(fā)問題解決的詳細(xì)內(nèi)容,更多關(guān)于android enableD8解決的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android判斷用戶2G/3G/4G移動數(shù)據(jù)網(wǎng)絡(luò)

    Android判斷用戶2G/3G/4G移動數(shù)據(jù)網(wǎng)絡(luò)

    這篇文章主要介紹了Android判斷用戶2G/3G/4G移動數(shù)據(jù)網(wǎng)絡(luò)的方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Android 相機(jī)相冊權(quán)限設(shè)置方法

    Android 相機(jī)相冊權(quán)限設(shè)置方法

    今天小編就為大家分享一篇Android 相機(jī)相冊權(quán)限設(shè)置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Android滑動沖突的解決技巧

    Android滑動沖突的解決技巧

    Android滑動沖突是Android開發(fā)中常見的問題,在一個界面中,可能存在多個View可以響應(yīng)滑動事件,如果這些View滑動方向一致,則會導(dǎo)致滑動沖突,本文將從原理、使用與優(yōu)化三個方面,詳細(xì)介紹Android滑動沖突的解決方式,需要的朋友可以參考下
    2024-01-01
  • 結(jié)合Windows窗口深入分析Android窗口的實現(xiàn)

    結(jié)合Windows窗口深入分析Android窗口的實現(xiàn)

    在Android中,窗口是一個基本的圖形用戶界面元素,它提供了一個屏幕區(qū)域來放置應(yīng)用程序的用戶界面元素。窗口可以是全屏的,也可以是一個小的對話框。每個窗口都有一個特定的主題和樣式,可以根據(jù)應(yīng)用程序的需求進(jìn)行自定義
    2023-04-04
  • android開發(fā)權(quán)限詢問的示例代碼

    android開發(fā)權(quán)限詢問的示例代碼

    這篇文章主要介紹了android開發(fā)權(quán)限詢問的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • XrecyclerView實現(xiàn)加載數(shù)據(jù)和切換不同布局

    XrecyclerView實現(xiàn)加載數(shù)據(jù)和切換不同布局

    這篇文章主要為大家詳細(xì)介紹了XrecyclerView實現(xiàn)加載數(shù)據(jù)、切換不同布局功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Flutter中關(guān)于angle的踩坑記錄

    Flutter中關(guān)于angle的踩坑記錄

    考慮到可能有很多同學(xué)還沒有接觸 Flutter,下面這篇文章主要給大家介紹了關(guān)于Flutter中關(guān)于angle的踩坑記錄,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 解析Android數(shù)據(jù)加密之異或加密算法

    解析Android數(shù)據(jù)加密之異或加密算法

    本篇文章主要介紹了Android數(shù)據(jù)加密之異或加密算法,現(xiàn)在分享給大家,也給大家做個參考。有興趣的可以了解一下。
    2016-11-11
  • Android編程實現(xiàn)的一鍵鎖屏程序詳解

    Android編程實現(xiàn)的一鍵鎖屏程序詳解

    這篇文章主要介紹了Android編程實現(xiàn)的一鍵鎖屏程序,結(jié)合實例形式詳細(xì)分析了Android一鍵鎖屏的原理與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2016-10-10
  • 新版Android studio導(dǎo)入微信支付和支付寶官方Demo問題解決大全

    新版Android studio導(dǎo)入微信支付和支付寶官方Demo問題解決大全

    這篇文章主要為大家詳細(xì)介紹了新版Android studio導(dǎo)入微信支付和支付寶官方Demo問題的解決大全,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論