安装 react-native-fcm 后,我正在使用 react native 构建一个分离的 android 应用程序,我总是收到以下错误消息:
我的项目毕业如下所示:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// Point to local maven repository
url "$rootDir/../.expo-source/android/maven"
}
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
虽然我的app/build.gradle看起来像:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "fi.x.y"
minSdkVersion 19
targetSdkVersion 26
versionCode 2
versionName "1.0.2"
multiDexEnabled true
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
manifestPlaceholders = [
'appAuthRedirectScheme': 'fi.x.y'
]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "8g"
}
lintOptions {
abortOnError false
}
}
task exponentPrebuildStep(type: Exec) {
workingDir '../../'
if (System.getProperty('os.name').toLowerCase().contains('windows')) {
commandLine 'cmd', '/c', '.\.expo-source\android\detach-scripts\prepare-detached-build.bat'
} else {
commandLine './.expo-source/android/detach-scripts/prepare-detached-build.sh'
}
}
preBuild.dependsOn exponentPrebuildStep
repositories{
flatDir{
dirs "../../node_modules/react-native-background-geolocation/android/libs"
}
mavenLocal()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile(project(':react-native-firebase')) {
transitive = false
}
compile project(':react-native-vector-icons')
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:multidex:1.0.2'
compile 'com.google.android.gms:play-services:11.8.0'
compile 'com.google.android.gms:play-services-location:11.8.0'
compile 'com.google.android.gms:play-services-places:11.8.0'
compile 'com.google.android.gms:play-services-maps:11.8.0'
compile 'com.google.android.gms:play-services-ads:11.8.0'
compile('host.exp.exponent:expoview:22.0.0@aar') {
exclude group: 'com.facebook.android', module: 'facebook-android-sdk'
exclude group: 'com.facebook.android', module: 'audience-network-sdk'
exclude group: 'io.nlopez.smartlocation', module: 'library'
transitive = true
}
compile ('com.facebook.android:facebook-android-sdk:4.+')
compile('com.facebook.android:audience-network-sdk:4.+') {
exclude module: 'play-services-ads'
}
compile('io.nlopez.smartlocation:library:3.2.11') {
transitive = false
}
compile(project(':react-native-background-geolocation')) {
exclude group: 'com.google.android.gms', module: 'play-services-location'
}
compile(name: 'tslocationmanager', ext: 'aar') {
exclude group: 'com.google.android.gms'
}
compile project(':react-native-fcm')
compile 'com.google.firebase:firebase-core:11.8.0' //this decides your firebase SDK version
}
apply plugin: 'com.google.gms.google-services'
主要用途:
// Needed for `react-native link`
public List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
// Add your own packages here!
// TODO: add cool native modules
new RNBackgroundGeolocation(),
// Needed for `react-native link`
// new MainReactPackage(),
new RNFirebasePackage(),
new VectorIconsPackage(),
new RNFirebaseMessagingPackage(),
new FIRMessagingPackage()
);
}
我正在点击此链接为反应本机 android 安装推送通知:https://github.com/evollu/react-native-fcm
我没有看到任何日志进入控制台日志,该项目正在成功构建,但是当启动应用程序时,出现带有错误消息的白屏 包未在 xxx:yy 运行。
我以前没有这个问题,我还必须将所有谷歌服务包更改为 11.8.0,因为我安装 fcm 库时存在冲突!
知道它会导致什么,以至于我无法打开我的应用程序!
我以前遇到过这个问题,请尝试以下操作:
- 确保您的笔记本电脑和手机位于同一 Wi-Fi 网络上。
-
在您的设备上打开您的 React Native 应用程序。您会看到一个红色屏幕 出现错误打开应用内开发者菜单。(你说的那个)
-
转到"开发设置"→"调试设备的服务器主机"。(摇动设备)
-
输入计算机的 IP 地址和本地开发人员的端口 服务器(例如 10.0.1.1:8081)。返回"开发人员"菜单,然后 选择重新加载 JS。
我使用 ipconfig 来查找我的 IP 并使用上述方法。
我还建议您使用您的平台工具,并确保您正确安装了 adb。
我实际上通过创建一个新的 react 本机项目来发现它是这个,并发现这解决了错误。
注意:您可能会收到另一个错误,告诉您无法删除 x 文件路径。我在我的实践项目中尝试了它,它奏效了。 * 尝试风险自负。
调试 - 反应本机