我正在处理最近弹出的Expo(React Native)项目。我刚刚将OneSignal节点软件包安装到我的项目中。
npm install react-native-onesignal && react-native link react-native-onsignal
然后在我的Android项目的android/app/build.gradle
文件(sdkNumbers,依赖项和libs所在的文件)中,我进行了以下设置:
android {
compileSdkVersion 28
buildToolsVersion '28.0.0'
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 28
...
}
...在同一个文件的“依赖项”部分中,我拥有最近链接的lib(onesignal)...
dependencies {
compile project(':react-native-onesignal')
...
}
因此,我的原生Android项目设置为使用API 28功能构建(基本上就是所有sdkNumbers设置为28的意思)。
错误,当我尝试构建Android应用时遇到的错误是:
> Task :react-native-onesignal:verifyReleaseResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':react-native-onesignal:verifyReleaseResources'.
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
Output: /node_modules/react-native-onesignal/android/build/intermediates/res/merged/release/values-v28/values-v28.xml:7:
error: resource android:attr/dialogCornerRadius not found.
/node_modules/react-native-onesignal/android/build/intermediates/res/merged/release/values-v28/values-v28.xml:11:
error: resource android:attr/dialogCornerRadius not found.
/node_modules/react-native-onesignal/android/build/intermediates/res/merged/release/values/values.xml:970:
error: resource android:attr/fontVariationSettings not found.
/node_modules/react-native-onesignal/android/build/intermediates/res/merged/release/values/values.xml:971:
error: resource android:attr/ttcIndex not found.
error: failed linking references.
我也尝试将所有com.android.support
库都更改为最新版本(28)。问题仍然存在。
我试图撤消AndroidX迁移。问题变成了一些Proguard疯狂的东西。太疯狂了,我回到了AndroidX。
答案 0 :(得分:0)
我只需要更新路径build.gradle
中的依赖项(单一信号)node_modules/react-native-onesignal/android/build.gradle
文件即可。
基本上,我将 onesignal 的compileSdkVersion
从26更改了
android {
compileSdkVersion safeExtGet('compileSdkVersion', 26)
buildToolsVersion safeExtGet('buildToolsVersion', '26.0.2')
至28
android {
compileSdkVersion 28
buildToolsVersion safeExtGet('buildToolsVersion', '26.0.2')
它可以正常运行,并且通知现在可以正常工作。
我将onesignal的build.gradle
compileSdkVersion
更改为与Android主要build.gradle
文件相同的文件。