3 回答

TA貢獻1860條經驗 獲得超9個贊
導入該注釋類:
import androidx.annotation.NonNull;
這要么來自這種依賴關系:
implementation "androidx.annotation:annotation:1.0.0"
或來自此依賴項,以防尚未使用androidx
:
implementation "com.android.support:support-annotations:28.0.0"
然后你可以像往常一樣使用它:
@NonNull

TA貢獻1808條經驗 獲得超4個贊
我發現唯一有用的解決方法是放棄react-native run-android
命令并手動進入ProjectHome/node_modules/ModuleIWantToChange/android/src/main/java/FileToChange.java
正在導入的 react-native 庫(對我來說:)androidx.annotation.NonNull
,將依賴項更改為android.support.annotation.NonNull
,然后確保使用com.android.support:support-annotations
“依賴項”下進行編譯在那個 node_module 的“android/build.gradle”文件中。就我而言,我使用的是“com.android.support:support-annotations:25.3.1”版本。你必須確保你有你在這里調用的版本??纯茨阍?code>$ANDROID_HOME/extras/android/m2repository/com/android/support/support-annotations.
然后,我沒有使用 react-native run-android,而是移至項目主目錄下的 android 目錄并運行sudo ./gradlew --stacktrace installDebug
(stacktrace 是可選的)以在我的模擬器/設備上構建和安裝 apk。
這可能不適用于所有人,但在我的情況下這是一個可以容忍的解決方法。

TA貢獻2080條經驗 獲得超4個贊
[...] 但是當我在它上面使用 break 時,該方法沒有成功。
[...] 使用 ActivityCompat 來獲取 requestPermission [...]
你在一個片段中。不要向 Activity 請求權限。如果您詢問片段,您還會在片段中獲得回調。
requestPermissions(new String[]{permissionString}, requestCode);
API 23 中引入了運行時權限(這就是該方法僅在 API 23 之后可用的原因)。修復你的狀況。在此之前擁有清單中聲明的權限就足夠了。
題外話:平臺片段已被棄用。請改用支持片段。擴展SupportMapFragment
.
@androidx.annotation.NonNull
找不到,因為您的項目中沒有使用 AndroidX。您可以使用任何其他@NonNull
可用的注釋(來自 SDK 或來自支持庫)。
添加回答
舉報