close

最近看到 Google 在今年即將發佈 Jetpack Compose 1.0.

手癢的我,就想說搶先來試用看看

 

進到文件中 (連結)

一開始就需要我們更新 Android Studio

因為有補助 Jetpack Compose 開發的即時預覽等新功能

下載連結在這

 

沒想到更新之後讓我遇到了今天的坑

AppDatabase_Impl.java:25: error: package javax.annotation.processing does not exist
import javax.annotation.processing.Generated;

 

這個 Error 是在有使用 Jetpack Room 的情況下

在編譯的時候發生的

AppDatabase 有一個註解編譯時找不到

@Generated("androidx.room.RoomProcessor")

 

發生原因是 JDK 版本不同造成的

之前我用的還是 JDK 1.8 

但更新 Android Studio 之後

他預設幫我們安裝的是 JDK 11

 

這個問題網上有五花八門的解法

In my case

有兩個方法管用

1、設定 JDK 

到 Android Studio >> File >> Project Structure 如下圖

在這裡可以看到 Android Studio 吃的 JDK 路徑

截圖 2021-03-10 上午11.07.32

我們可以把他指向我們需要的 JDK 版本,就解決了。

 

2 、添加依賴

即然找不到,那我們就告訴他哪裡有

在 app/build.gradle 中加入

dependencies {
    compileOnly 'com.github.pengrad:jdk9-deps:1.0'
}

這裡使用 compileOnly 

會讓此依賴只在編譯時生效,不會包進 apk abb 裡面

造成肥大的副作用

關於 dependencies 的關鍵字 implementation、api... 等

這裡有一篇先前我記錄的文章可以參考

Android 升級 Gradle 3.x , implementation, compile, api 之間有什麼區別、差異與不同之處呢?』Willy's Fish教學筆記

 

 

 

 

資料來源:

https://developer.android.com/jetpack/compose/setup

https://developer.android.com/studio/preview

 

 

 

 

 

 

 

 

 

 

 

 

 


arrow
arrow

    顏澤偉 發表在 痞客邦 留言(0) 人氣()