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”版本。你必须确保你有你在这里调用的版本。看看你在$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 或来自支持库)。
添加回答
举报