最近看到 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 路徑
我們可以把他指向我們需要的 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
留言列表