React-native-onesignal: Hancurkan dengan RN0.60 di Android apa pun

Dibuat pada 23 Sep 2019  ·  43Komentar  ·  Sumber: OneSignal/react-native-onesignal

1. JIKA ANDA TIDAK MENGISI INFORMASI BERIKUT, KAMI DAPAT MENUTUP MASALAH ANDA TANPA INVESTIGASI 2. CARI MASALAH YANG ADA UNTUK JAWABAN: https://goo.gl/pspQNY 3. Lihat dokumentasi Masalah Umum kami: https://goo .gl/BDcfZZ 4. Lihat pedoman kontribusi kami: https://goo.gl/h19DnX

Keterangan:

(deskripsi Anda di sini)

Lingkungan

System:
    OS: macOS 10.14.6
    CPU: (6) x64 Intel(R) Core(TM) i5-8500B CPU @ 3.00GHz
    Memory: 6.63 GB / 32.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 10.16.1 - ~/.nvm/versions/node/v10.16.1/bin/node
    Yarn: 1.17.3 - /usr/local/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.1/bin/npm
  SDKs:
    iOS SDK:
      Platforms: iOS 13.0, DriverKit 19.0, macOS 10.15, tvOS 13.0, watchOS 6.0
    Android SDK:
      API Levels: 23, 25, 27, 28, 29
      Build Tools: 25.0.2, 25.0.3, 28.0.3, 29.0.1, 29.0.2
      System Images: android-28 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.5791312
    Xcode: 11.0/11A419c - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6
    react-native: 0.60.5 => 0.60.5
[email protected]

Di aplikasi Android, aplikasi saya mulai mogok tanpa pesan atau jendela apa pun.

adb logcat :

23-09 17:06:37.900 8388 8388 D AndroidRuntime: Mematikan VM
23-09 17:06:37.901 8388 8388 E AndroidWaktu Operasi: FATAL PENGECUALIAN: utama
23-09 17:06:37.901 8388 8388 E AndroidRuntime: Proses: com.macroactive, PID: 8388
23-09 17:06:37.901 8388 8388 E AndroidRuntime: java.lang.NoClassDefFoundError: Resolusi gagal: Lcom/google/android/gms/common/internal/zzbq;
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di com.google.firebase.provider.FirebaseInitProvider.attachInfo(Sumber Tidak Dikenal)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.app.ActivityThread.installProvider(ActivityThread.java:5153)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.app.ActivityThread.-wrap1(ActivityThread.java)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.os.Handler.dispatchMessage(Handler.java:102)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.os.Looper.loop(Looper.java:148)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di android.app.ActivityThread.main(ActivityThread.java:5417)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.reflect.Method.invoke(Metode Asli)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: Disebabkan oleh: java.lang.ClassNotFoundException: Tidak menemukan kelas "com.google.android.gms.common.internal.zzbq" di jalur: DexPathList[[file zip "/data/app/com.macroactive-2/base.apk"],nativeLibraryDirectories=[/data/app/com.macroactive-2/lib/arm, /data/app/com.macroactive-2/base.apk !/lib/armeabi-v7a, /vendor/lib, /system/lib]]
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.ClassLoader.loadClass(ClassLoader.java:511)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.ClassLoader.loadClass(ClassLoader.java:469)
09-23 17:06:37.901 8388 8388 E AndroidRuntime: ... 12 lainnya
23-09 17:06:37.901 8388 8388 E AndroidRuntime: Ditekan: java.lang.ClassNotFoundException: com.google.android.gms.common.internal.zzbq
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.Class.classForName(Metode Asli)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.BootClassLoader.findClass(ClassLoader.java:781)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
23-09 17:06:37.901 8388 8388 E AndroidRuntime: di java.lang.ClassLoader.loadClass(ClassLoader.java:504)
09-23 17:06:37.901 8388 8388 E AndroidRuntime: ... 13 lainnya
23-09 17:06:37.901 8388 8388 E AndroidRuntime: Disebabkan oleh: java.lang.NoClassDefFoundError: Kelas tidak ditemukan menggunakan pemuat kelas boot; tidak ada jejak tumpukan yang tersedia

Tidak dapat mereproduksinya di aplikasi baru jadi mungkin ini terkait dengan perpustakaan mana pun. Menemukan beberapa masalah dengan "com/google/android/gms/common/internal/zzbq" tetapi tidak dapat menemukan yang berguna.
Katakan di mana untuk memulai?

Help Wanted

Komentar yang paling membantu

kesalahan yang sama di react-native 0.60.5 , menggunakan [email protected]

Semua 43 komentar

Demikian pula, aplikasi saya juga mogok saat mendapatkan notifikasi di android. Saya mengujinya di mi note 4 (android 7.0, RN 0.60.3, react-native-onesignal 3.3.3).

@SAHITYASAI Bisakah Anda menunjukkan adb logcat ?

Screenshot_2019-09-22-17-55-21-844_com miui bugreport
Ini adalah kesalahan runtime yang saya dapatkan setiap kali aplikasi mogok.

kesalahan yang sama di react-native 0.60.5 , menggunakan [email protected]

Dapatkah Anda memastikan bahwa Anda telah menambahkan onesignal-gradle-plugin ke bagian atas app/build.gradle dicatat pada langkah 1.1?
https://documentation.onesignal.com/docs/android-sdk-setup#section -1-gradle-setup

Kehilangan ini atau menambahkannya ke build.gradle adalah masalah paling umum untuk kesalahan runtime ini.

Awal dari app/build.gradle

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.4, 0.99.99]'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

apply plugin: "com.android.application"

import com.android.build.OutputFile

btw, saya hanya menggunakan sebelumnya

apply plugin: "com.onesignal.androidsdk.onesignal-gradle-plugin"

untuk reaksi-asli 0.59 & reaksi-asli-onesignal: 3.2.12

Saya menambahkan semuanya seperti yang dijelaskan dalam panduan instalasi. Tetapi baris apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin' menyebabkan pembuatan aplikasi saya gagal dengan kesalahan ini

  • Apa yang salah: Terjadi masalah saat mengonfigurasi proyek root ''. >Tidak bisa mendapatkan properti 'android' yang tidak dikenal untuk proyek root '' dari jenis org.gradle.api.Project."

sehingga saya mengomentari baris itu karena saya tidak dapat menemukan solusi apa pun di google.
Juga dapatkah seseorang memberi saya kode contoh tentang cara mengirim pemberitahuan terjadwal menggunakan API REST onesignal. Terima kasih sebelumnya.

Dapatkah Anda memastikan bahwa Anda telah menambahkan onesignal-gradle-plugin ke bagian atas app/build.gradle dicatat pada langkah 1.1?
https://documentation.onesignal.com/docs/android-sdk-setup#section -1-gradle-setup

Kehilangan ini atau menambahkannya ke build.gradle adalah masalah paling umum untuk kesalahan runtime ini.

Ya ditambahkan dan kesalahan yang sama terjadi

Awal dari app/build.gradle

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.4, 0.99.99]'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

apply plugin: "com.android.application"

import com.android.build.OutputFile

cara saya melihatnya! yang kamu lakukan itu salah! itu tidak semua untuk file app/build.gradle, plugin yang berlaku hanya ada di sana dan sisa jalur kelas, url maven dan url repo plugin gradle masuk ke proyek build.gradle

@indapublic saya baru saja menyelesaikannya! saya memiliki bug yang sama! terima kasih telah memposting ini.! jika Anda masih mencari saya terbuka untuk membantu menghubungi saya di!

Halo,
Harap tingkatkan ke versi plugin terbaru (3.4.1) dan coba lagi.

@SAHITYASAI lihat di sini

@indapublic saya baru saja menyelesaikannya! saya memiliki bug yang sama! terima kasih telah memposting ini.! jika Anda masih mencari saya terbuka untuk membantu menghubungi saya di!

Terima kasih, Terpecahkan!!

Di dalam Folder Proyek "app/build.gradle" menambahkan ini di atas file.

skrip bangunan {
repositori {
maven { url ' https://plugins.gradle.org/m2/ ' } // Portal Plugin Gradle
}
dependensi {
classpath 'gradle.plugin.com. onesignal: onesignal-gradle-plugin :[0.12.1, 0.99.99]'
}
}

terapkan plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

terapkan plugin: "com.android.application"

impor com.android.build.OutputFile

berhasil!

Senang mendengarnya!

@indapublic saya baru saja menyelesaikannya! saya memiliki bug yang sama! terima kasih telah memposting ini.! jika Anda masih mencari saya terbuka untuk membantu menghubungi saya di!

Tunjukkan build.gradle

@indapublic saya baru saja menyelesaikannya! saya memiliki bug yang sama! terima kasih telah memposting ini.! jika Anda masih mencari saya terbuka untuk membantu menghubungi saya di!

Tunjukkan build.gradle

skrip bangunan {
repositori {
maven { url ' https://plugins.gradle.org/m2/ ' } // Portal Plugin Gradle
}
dependensi {
classpath 'gradle.plugin.com. onesignal: onesignal-gradle-plugin :[0.12.1, 0.99.99]'
}
}

terapkan plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

terapkan plugin: "com.android.application"

impor com.android.build.OutputFile

/**

  • File react.gradle mendaftarkan tugas untuk setiap varian build (mis. bundleDebugJsAndAssets
  • dan bundleReleaseJsAndAssets).
  • Ini pada dasarnya memanggil react-native bundle dengan argumen yang benar selama Android build
  • siklus. Secara default, bundleDebugJsAndAssets dilewati, seperti dalam mode debug/dev kami lebih suka memuat
  • bundel langsung dari server pengembangan. Di bawah ini Anda dapat melihat semua kemungkinan konfigurasi
  • dan default mereka. Jika Anda memutuskan untuk menambahkan blok konfigurasi, pastikan untuk menambahkannya sebelum
  • apply from: "../../node_modules/react-native/react.gradle" baris.
    *
  • proyek.ext.react = [
  • // nama file aset yang dihasilkan yang berisi bundel JS Anda
  • bundleAssetName: "index.android.bundle",
    *
  • // file entri untuk pembuatan bundel
  • entriFile: "index.android.js",
    *
  • // https://facebook.github.io/react-native/docs/performance#enable -the-ram-format
  • bundleCommand: "ram-bundel",
    *
  • // apakah akan menggabungkan JS dan aset dalam mode debug
  • bundleInDebug: salah,
    *
  • // apakah akan menggabungkan JS dan aset dalam mode rilis
  • bundleInRelease: benar,
    *
  • // apakah akan menggabungkan JS dan aset dalam varian build lain (jika dikonfigurasi).
  • // Lihat http://tools.android.com/tech-docs/new-build-system/user-guide#TOC -Build-Variants
  • // Properti konfigurasi dapat dalam format berikut
  • // 'bundleIn${productFlavor}${buildType}'
  • // 'bundleIn${buildType}'
  • // bundleInFreeDebug: benar,
  • // bundleInPaidRelease: benar,
  • // bundleInBeta: benar,
    *
  • // apakah akan menonaktifkan mode dev dalam varian build kustom (secara default hanya dinonaktifkan dalam rilis)
  • // misalnya: untuk menonaktifkan mode dev dalam tipe staging build (jika dikonfigurasi)
  • devDisabledInStaging: benar,
  • // Properti konfigurasi dapat dalam format berikut
  • // 'devDisabledIn${productFlavor}${buildType}'
  • // 'devDisabledIn${buildType}'
    *
  • // root proyek Anda, yaitu tempat "package.json" berada
  • akar: "../../",
    *
  • // di mana menempatkan aset bundel JS dalam mode debug
  • jsBundleDirDebug: "$buildDir/perantara/aset/debug",
    *
  • // di mana menempatkan aset bundel JS dalam mode rilis
  • jsBundleDirRelease: "$buildDir/perantara/aset/rilis",
    *
  • // tempat meletakkan sumber daya yang dapat digambar / React Native assets, misalnya yang Anda gunakan melalui
  • // membutuhkan('./image.png')), dalam mode debug
  • resourcesDirDebug: "$buildDir/intermediate/res/merged/debug",
    *
  • // tempat meletakkan sumber daya yang dapat digambar / React Native assets, misalnya yang Anda gunakan melalui
  • // membutuhkan('./image.png')), dalam mode rilis
  • resourcesDirRelease: "$buildDir/intermediate/res/merged/release",
    *
  • // secara default tugas gradle dilewati jika tidak ada file atau aset JS yang berubah; ini berarti
  • // bahwa kita tidak melihat file di android/ atau ios/ untuk menentukan apakah tugas sudah selesai
  • // tanggal; jika Anda memiliki folder lain yang ingin Anda abaikan karena alasan kinerja (gradle
  • // mengindeks seluruh pohon), tambahkan di sini. Atau, jika Anda memiliki file JS di Android/
  • // misalnya, Anda mungkin ingin menghapusnya dari sini.
  • inputTidak termasuk: ["android/ ", "ios/ "],
    *
  • // menimpa simpul mana yang dipanggil dan dengan argumen tambahan apa
  • nodeExecutableAndArgs: ["simpul"],
    *
  • // berikan argumen tambahan ke pembuat paket
  • extraPackagerArgs: []
  • ]
    */

proyek.ext.react = [
entriFile: "index.js",
enableHermes: false, // bersihkan dan bangun kembali jika berubah
]

terapkan dari: "../../node_modules/react-native/react.gradle"

/**

  • Setel ini ke true untuk membuat dua APK terpisah, bukan satu:

    • APK yang hanya berfungsi di perangkat ARM


    • APK yang hanya berfungsi di perangkat x86

  • Keuntungannya adalah ukuran APK berkurang sekitar 4MB.
  • Unggah semua APK ke Play Store dan orang-orang akan mengunduh
  • yang benar berdasarkan arsitektur CPU perangkat mereka.
    */
    def enableSeparateBuildPerCPUArchitecture = false

/**

  • Jalankan Proguard untuk mengecilkan bytecode Java di build rilis.
    */
    def enableProguardInReleaseBuilds = false

/**

  • Rasa build yang disukai dari JavaScriptCore.
    *
  • Misalnya, untuk menggunakan varian internasional, Anda dapat menggunakan:
  • def jscFlavor = 'org.webkit:android-jsc-intl:+'
    *
  • Varian internasional termasuk perpustakaan ICU i18n dan data yang diperlukan
  • memungkinkan untuk menggunakan misalnya Date.toLocaleString dan String.localeCompare that
  • memberikan hasil yang benar saat menggunakan dengan lokal selain en-US. Perhatikan bahwa
  • varian ini sekitar 6MiB lebih besar per arsitektur daripada default.
    */
    def jscFlavor = 'org. webkit:android-jsc :+'

/**

  • Apakah akan mengaktifkan Hermes VM.
    *
  • Ini harus diatur pada project.ext.react dan dicerminkan di sini. Jika tidak disetel
  • di project.ext.react, JavaScript tidak akan dikompilasi ke Hermes Bytecode
  • dan manfaat menggunakan Hermes karena itu akan berkurang tajam.
    */
    def enableHermes = project.ext.react.get("enableHermes", false);

android {
compileSdkVersion rootProject.ext.compileSdkVersion

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

defaultConfig {
    applicationId "com.yourappid"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode 1
    versionName "1.0"
    missingDimensionStrategy 'react-native-camera', 'general'
}
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
    }
}
signingConfigs {
    debug {
        storeFile file('debug.keystore')
        storePassword 'android'
        keyAlias 'androiddebugkey'
        keyPassword 'android'
    }
}
buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        // Caution! In production, you need to generate your own keystore file.
        // see https://facebook.github.io/react-native/docs/signed-apk-android.
        signingConfig signingConfigs.debug
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // https://developer.android.com/studio/build/configure-apk-splits.html
        def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }

    }
}

packagingOptions {
    pickFirst '**/armeabi-v7a/libc++_shared.so'
    pickFirst '**/x86/libc++_shared.so'
    pickFirst '**/arm64-v8a/libc++_shared.so'
    pickFirst '**/x86_64/libc++_shared.so'
    pickFirst '**/x86/libjsc.so'
    pickFirst '**/armeabi-v7a/libjsc.so'
}

}

dependensi {
implementasi fileTree(dir: "libs", termasuk: ["*.jar"])
implementasi "com.facebook. react:react-native :+" // Dari node_modules

if (enableHermes) {
  def hermesPath = "../../node_modules/hermesvm/android/";
  debugImplementation files(hermesPath + "hermes-debug.aar")
  releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
  implementation jscFlavor
}

}

// Jalankan ini sekali untuk dapat menjalankan aplikasi dengan BUCK
// menempatkan semua dependensi kompilasi ke dalam folder libs untuk digunakan BUCK
tugas copyDownloadableDepsToLibs(ketik: Salin) {
dari configurations.compile
ke dalam 'libs'
}

terapkan dari: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(proyek)

Terima kasih, @lucasferreiraestevam. Btw, Anda dapat memformat kode ini sebagai sumber untuk bacaan yang lebih baik.
Pokoknya saya tidak melihat banyak perbedaan dengan contoh Anda. Tapi terima kasih kembali

Bekerja untuk saya setelah menambahkan semua perpustakaan lagi untuk proyek baru. Terima kasih untuk semua

Masalah saya belum diperbaiki. saya masih mendapatkan kesalahan runtime yang sama. Bisakah seseorang membantu saya.

@SAHITYASAI tunjukkan build.gradle

android/build.gradle :-

buildscript { ext { buildToolsVersion = "28.0.3" minSdkVersion = 16 compileSdkVersion = 28 targetSdkVersion = 28 supportLibVersion = "28.0.0" googlePlayServicesVersion: "15.0.0" firebaseVersion: "15.0.0" } repositories { google() jcenter() mavenLocal() maven { url 'https://plugins.gradle.org/m2/' } // Gradle Plugin Portal } dependencies { classpath("com.android.tools.build:gradle:3.4.1") classpath 'com.google.gms:google-services:4.3.2' classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.5, 0.99.99]' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { mavenLocal() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url("$rootDir/../node_modules/react-native/android") } maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") } google() jcenter() } } apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

android/app/build.gradle :-

apply plugin: "com.android.application" import com.android.build.OutputFile project.ext.react = [ entryFile: "index.js", enableHermes: false, // clean and rebuild if changing ] apply from: "../../node_modules/react-native/react.gradle" def enableSeparateBuildPerCPUArchitecture = false def enableProguardInReleaseBuilds = false def jscFlavor = 'org.webkit:android-jsc:+' def enableHermes = project.ext.react.get("enableHermes", false); android { compileSdkVersion rootProject.ext.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { applicationId "com.tutelage" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 3 versionName "1.2" multiDexEnabled true } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } } signingConfigs { debug { storeFile file('debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' } release { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.release minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } applicationVariants.all { variant -> variant.outputs.each { output -> def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode } } } packagingOptions { pickFirst '**/armeabi-v7a/libc++_shared.so' pickFirst '**/x86/libc++_shared.so' pickFirst '**/arm64-v8a/libc++_shared.so' pickFirst '**/x86_64/libc++_shared.so' pickFirst '**/x86/libjsc.so' pickFirst '**/armeabi-v7a/libjsc.so' } } dependencies { implementation project(':react-native-onesignal') compile project(':react-native-admob') implementation "com.google.android.gms:play-services-base:17.0.0" implementation ('com.google.android.gms:play-services-ads:18.1.1') { force = true; } implementation 'com.google.firebase:firebase-analytics:17.2.0' implementation 'com.google.firebase:firebase-auth:18.1.0' implementation 'com.google.firebase:firebase-firestore:20.2.0' implementation 'com.google.firebase:firebase-ads:18.1.1' implementation project(':@react-native-community_netinfo') implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.facebook.react:react-native:+" // From node_modules implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" // implementation "com.google.android.gms:play-services-ads-lite:[18.1.1]" if (enableHermes) { def hermesPath = "../../node_modules/hermesvm/android/"; debugImplementation files(hermesPath + "hermes-debug.aar") releaseImplementation files(hermesPath + "hermes-release.aar") } else { implementation jscFlavor } } task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs' } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) apply plugin: 'com.google.gms.google-services'

@SAHITYASAI Menurut dokumentasi Anda harus memindahkan kode ini

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.4, 0.99.99]'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

ke app/build.gradle . Pindahkan ke awal file

Dan tolong format ulang kode Anda

masalah yang sama di sini
`BUILD GAGAL dalam 3 detik

kesalahan Gagal memasang aplikasi. Pastikan Anda telah menyiapkan lingkungan pengembangan Android: https://facebook.github.io/react-native/docs/getting-started.html#android -development-environment.
Kesalahan: Perintah gagal: aplikasi gradlew.bat: installDebug -PreactNativeDevServerPort=8081

FAILURE: Build gagal dengan pengecualian.

  • Apa yang salah:
    Eksekusi gagal untuk tugas ': app:validateSigningDebug '.

    File keystore 'E:\React Native\push notification\react-native-onesignal\examples\RNOneSignal\Android\app\debug.keystore' tidak ditemukan untuk menandatangani konfigurasi 'debug'.

  • Mencoba:
    Jalankan dengan opsi --stacktrace untuk mendapatkan jejak tumpukan. Jalankan dengan opsi --info atau --debug untuk mendapatkan lebih banyak keluaran log. Jalankan dengan --scan untuk mendapatkan wawasan penuh.

  • Dapatkan bantuan lebih lanjut di https://help.gradle.org

BUILD GAGAL dalam 3 detik

at checkExecSyncError (child_process.js:601:13)
at execFileSync (child_process.js:621:13)
at runOnAllDevices (E:\React Native\push notification\react-native-onesignal\examples\RNOneSignal\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:74:39)
at buildAndRun (E:\React Native\push notification\react-native-onesignal\examples\RNOneSignal\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\index.js:158:41)
at then.result (E:\React Native\push notification\react-native-onesignal\examples\RNOneSignal\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\index.js:125:12)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)`

Saya membuatnya bekerja dengan paket react-native-onesignal terbaru!

ini project/build.gradle

Screenshot 2019-10-04 at 8 01 09 PM

Ini file project/app/build.gradle milik saya

Screenshot 2019-10-04 at 8 01 37 PM

LANGKAH-LANGKAH YANG DIAMBIL UNTUK MENGGUNAKANNYA adalah

yarn add react-native-onesignal

lalu untuk ios
secara sederhana
cd ios && pod install

untuk andorid

secara sederhana

react-native run-android itu otomatis menautkan paket

@waqaramjad Masalah Anda terkait dengan penandatanganan kode

Keystore file 'E:\React Native\push notification\react-native-onesignal\examples\RNOneSignal\android\app\debug.keystore' not found for signing config 'debug'.

@indapublic jadi apa solusinya?

@waqaramjad Tunjukkan bagian android/app/build.gradle , signingConfigs

@indapublic di sini adalah android/app/build.gradle
`// File build tingkat atas tempat Anda dapat menambahkan opsi konfigurasi umum untuk semua sub-proyek/modul.

skrip bangunan {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
}
repositori {
google()
jcenter()
}
dependensi {
classpath("com.android.tools.build:gradle:3.4.1")

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

semua proyek {
repositori {
mavenLokal()
ahli {
// Semua React Native (JS, sumber Obj-C, binari Android) diinstal dari npm
url("$rootDir/../node_modules/react-native/android")
}
ahli {
// Android JSC diinstal dari npm
url("$rootDir/../node_modules/jsc-android/dist")
}

    google()
    jcenter()
}

}
`

@waqaramjad Versi RN apa yang Anda miliki?

"0.60.5"

Apakah Anda memperbarui aplikasi yang ada atau membuat yang baru?

saya hanya mengkloning contoh aplikasi yang ada yang ada dalam satu repo sinyal dan mulai saja

@waqaramjad Anda harus mengatakan ini dulu :)

Pertama: Anda mencetak android/build.gradle , bukan android/app/build.gradle

Kedua: Anda harus membuat debug dan melepaskan keystore terkait dengan manual ini , misalnya

btw: Saya melihat Anda menggunakan Windows, jadi mungkin Anda harus menggunakan beberapa hal untuk peluncuran keytool, saya tidak memiliki pengalaman dengan Windows.

tetapi mengapa saya membutuhkan keystore karena saya tidak ingin menandatangani apk, saya hanya ingin mengujinya

sementara di sini adalah kode untuk android/app/build.gradle

`terapkan plugin: "com.android.application"

impor com.android.build.OutputFile

/**

  • File react.gradle mendaftarkan tugas untuk setiap varian build (mis. bundleDebugJsAndAssets
  • dan bundleReleaseJsAndAssets).
  • Ini pada dasarnya memanggil react-native bundle dengan argumen yang benar selama Android build
  • siklus. Secara default, bundleDebugJsAndAssets dilewati, seperti dalam mode debug/dev kami lebih suka memuat
  • bundel langsung dari server pengembangan. Di bawah ini Anda dapat melihat semua kemungkinan konfigurasi
  • dan default mereka. Jika Anda memutuskan untuk menambahkan blok konfigurasi, pastikan untuk menambahkannya sebelum
  • apply from: "../../node_modules/react-native/react.gradle" baris.
    *
  • proyek.ext.react = [
  • // nama file aset yang dihasilkan yang berisi bundel JS Anda
  • bundleAssetName: "index.android.bundle",
    *
  • // file entri untuk pembuatan bundel
  • entriFile: "index.android.js",
    *
  • // https://facebook.github.io/react-native/docs/performance#enable -the-ram-format
  • bundleCommand: "ram-bundel",
    *
  • // apakah akan menggabungkan JS dan aset dalam mode debug
  • bundleInDebug: salah,
    *
  • // apakah akan menggabungkan JS dan aset dalam mode rilis
  • bundleInRelease: benar,
    *
  • // apakah akan menggabungkan JS dan aset dalam varian build lain (jika dikonfigurasi).
  • // Lihat http://tools.android.com/tech-docs/new-build-system/user-guide#TOC -Build-Variants
  • // Properti konfigurasi dapat dalam format berikut
  • // 'bundleIn${productFlavor}${buildType}'
  • // 'bundleIn${buildType}'
  • // bundleInFreeDebug: benar,
  • // bundleInPaidRelease: benar,
  • // bundleInBeta: benar,
    *
  • // apakah akan menonaktifkan mode dev dalam varian build kustom (secara default hanya dinonaktifkan dalam rilis)
  • // misalnya: untuk menonaktifkan mode dev dalam tipe staging build (jika dikonfigurasi)
  • devDisabledInStaging: benar,
  • // Properti konfigurasi dapat dalam format berikut
  • // 'devDisabledIn${productFlavor}${buildType}'
  • // 'devDisabledIn${buildType}'
    *
  • // root proyek Anda, yaitu tempat "package.json" berada
  • akar: "../../",
    *
  • // di mana menempatkan aset bundel JS dalam mode debug
  • jsBundleDirDebug: "$buildDir/perantara/aset/debug",
    *
  • // di mana menempatkan aset bundel JS dalam mode rilis
  • jsBundleDirRelease: "$buildDir/perantara/aset/rilis",
    *
  • // tempat meletakkan sumber daya yang dapat digambar / React Native assets, misalnya yang Anda gunakan melalui
  • // membutuhkan('./image.png')), dalam mode debug
  • resourcesDirDebug: "$buildDir/intermediate/res/merged/debug",
    *
  • // tempat meletakkan sumber daya yang dapat digambar / React Native assets, misalnya yang Anda gunakan melalui
  • // membutuhkan('./image.png')), dalam mode rilis
  • resourcesDirRelease: "$buildDir/intermediate/res/merged/release",
    *
  • // secara default tugas gradle dilewati jika tidak ada file atau aset JS yang berubah; ini berarti
  • // bahwa kita tidak melihat file di android/ atau ios/ untuk menentukan apakah tugas sudah selesai
  • // tanggal; jika Anda memiliki folder lain yang ingin Anda abaikan karena alasan kinerja (gradle
  • // mengindeks seluruh pohon), tambahkan di sini. Atau, jika Anda memiliki file JS di Android/
  • // misalnya, Anda mungkin ingin menghapusnya dari sini.
  • inputTidak termasuk: ["android/ ", "ios/ "],
    *
  • // menimpa simpul mana yang dipanggil dan dengan argumen tambahan apa
  • nodeExecutableAndArgs: ["simpul"],
    *
  • // berikan argumen tambahan ke pembuat paket
  • extraPackagerArgs: []
  • ]
    */

proyek.ext.react = [
entriFile: "index.js",
enableHermes: false, // bersihkan dan bangun kembali jika berubah
]

terapkan dari: "../../node_modules/react-native/react.gradle"

/**

  • Setel ini ke true untuk membuat dua APK terpisah, bukan satu:

    • APK yang hanya berfungsi di perangkat ARM


    • APK yang hanya berfungsi di perangkat x86

  • Keuntungannya adalah ukuran APK berkurang sekitar 4MB.
  • Unggah semua APK ke Play Store dan orang-orang akan mengunduh
  • yang benar berdasarkan arsitektur CPU perangkat mereka.
    */
    def enableSeparateBuildPerCPUArchitecture = false

/**

  • Jalankan Proguard untuk mengecilkan bytecode Java di build rilis.
    */
    def enableProguardInReleaseBuilds = false

/**

  • Rasa build yang disukai dari JavaScriptCore.
    *
  • Misalnya, untuk menggunakan varian internasional, Anda dapat menggunakan:
  • def jscFlavor = 'org.webkit:android-jsc-intl:+'
    *
  • Varian internasional termasuk perpustakaan ICU i18n dan data yang diperlukan
  • memungkinkan untuk menggunakan misalnya Date.toLocaleString dan String.localeCompare that
  • memberikan hasil yang benar saat menggunakan dengan lokal selain en-US. Perhatikan bahwa
  • varian ini sekitar 6MiB lebih besar per arsitektur daripada default.
    */
    def jscFlavor = 'org. webkit:android-jsc :+'

/**

  • Apakah akan mengaktifkan Hermes VM.
    *
  • Ini harus diatur pada project.ext.react dan dicerminkan di sini. Jika tidak disetel
  • di project.ext.react, JavaScript tidak akan dikompilasi ke Hermes Bytecode
  • dan manfaat menggunakan Hermes karena itu akan berkurang tajam.
    */
    def enableHermes = project.ext.react.get("enableHermes", false);

android {
compileSdkVersion rootProject.ext.compileSdkVersion

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

defaultConfig {
    applicationId "com.rnonesignal"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode 1
    versionName "1.0"
}
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
    }
}
signingConfigs {
    debug {
        storeFile file('debug.keystore')
        storePassword 'android'
        keyAlias 'androiddebugkey'
        keyPassword 'android'
    }
}
buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        // Caution! In production, you need to generate your own keystore file.
        // see https://facebook.github.io/react-native/docs/signed-apk-android.
        signingConfig signingConfigs.debug
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // https://developer.android.com/studio/build/configure-apk-splits.html
        def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }

    }
}

packagingOptions {
    pickFirst '**/armeabi-v7a/libc++_shared.so'
    pickFirst '**/x86/libc++_shared.so'
    pickFirst '**/arm64-v8a/libc++_shared.so'
    pickFirst '**/x86_64/libc++_shared.so'
    pickFirst '**/x86/libjsc.so'
    pickFirst '**/armeabi-v7a/libjsc.so'
}

}

dependensi {
implementasi fileTree(dir: "libs", termasuk: ["*.jar"])
implementasi "com.facebook. react:react-native :+" // Dari node_modules

if (enableHermes) {
  def hermesPath = "../../node_modules/hermesvm/android/";
  debugImplementation files(hermesPath + "hermes-debug.aar")
  releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
  implementation jscFlavor
}

}

// Jalankan ini sekali untuk dapat menjalankan aplikasi dengan BUCK
// menempatkan semua dependensi kompilasi ke dalam folder libs untuk digunakan BUCK
tugas copyDownloadableDepsToLibs(ketik: Salin) {
dari configurations.compile
ke dalam 'libs'
}

terapkan dari: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(proyek)
`

Tapi Anda ingin menginstalnya untuk perangkat Anda, bukan?
Konfigurasi tanda ada di sini

@indapublic terima kasih, aplikasi saya berhasil dibangun sekarang. Tetapi saya hanya perlu mengirim notifikasi ke pengguna yang tidak aktif selama 15 hari terus menerus hanya secara terprogram tanpa menggunakan dasbor notifikasi onesignal. Adakah yang bisa membantu saya.

Saya pikir Anda harus membuat masalah baru untuk ini, bukan?

@SAHITYASAI ,
Silakan hubungi saluran dukungan kami di OneSignal.com untuk bantuan lebih lanjut. Bersulang

Apakah halaman ini membantu?
0 / 5 - 0 peringkat