运行 android 时 Moengage 错误的 React-native 设置:包 MoEngage 不存在
Posted
技术标签:
【中文标题】运行 android 时 Moengage 错误的 React-native 设置:包 MoEngage 不存在【英文标题】:React-native setup of Moengage errors when running android: package MoEngage does not exist 【发布时间】:2019-06-05 15:01:55 【问题描述】:我正在我的 react 本机应用程序上安装 MoEngage sdk 和 react-native-moengage
包,但即使遵循 official site 中的指南,我也无法运行该应用程序
删除与 moengage 相关的所有内容会使应用再次运行,所以我不认为这是一个不同的包或错误的配置
我尝试清理 gradle,从 CLI 运行,从 android studio 运行,在物理设备中运行,更改 appcompat 的版本(破坏其他东西,所以我宁愿不再这样做)... 无济于事.
目前正在运行:
Windows 10 64 位
反应原生 0.59.8。这不是一个新应用,它从 0.55.4 开始,随着时间的推移迁移到 0.59.8。
Gradle 构建工具 3.3.0 和 gradle 版本 4.10.1-all
// app/build.gradle
android
compileSdkVersion 28
buildToolsVersion '28.0.3'
...
...
dependencies
implementation project(':react-native-moengage')
implementation 'com.moengage:moe-android-sdk:+'
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:28.0.0"
implementation "com.facebook.react:react-native:+" // From node_modules
...
// settings.gradle
include ':react-native-moengage'
project(':react-native-moengage').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-moengage/android')
//MainApplication.java
...
import com.moengage.react.MoEReactPackage;
...
public class MainApplication extends Application implements ReactApplication
...
@Override
public boolean getUseDeveloperSupport()
return BuildConfig.DEBUG;
@Override
protected List<ReactPackage> getPackages()
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new MoEReactPackage(),
);
;
@Override
public void onCreate()
super.onCreate();
MoEngage moEngage =
new MoEngage.Builder(this, "XXX")
.build();
MoEngage.initialise(moEngage);
到目前为止,我只收到以下消息
...project\android\app\src\main\java\io\lifevision\MainApplication.java:95: error: cannot find symbol
MoEngage moEngage =
^
symbol: class MoEngage
location: class MainApplication
...project\android\app\src\main\java\io\lifevision\MainApplication.java:96: error: package MoEngage does not exist
new MoEngage.Builder(this, "UZXYFJ0V2RQRUFJTMVHOAJKC")
^
...project\android\app\src\main\java\io\lifevision\MainApplication.java:98: error: cannot find symbol
MoEngage.initialise(moEngage);
^
symbol: variable MoEngage
location: class MainApplication
3 errors
【问题讨论】:
如果是数组末尾的附加,
,那是因为我删除了它下面的包以免弄乱答案,它不是最后一个包
您应该更改您的密钥:“UZXYFJ0V2RQRUFJTMVHOAJKC”
【参考方案1】:
缺少 MoEngage.java 的导入语句。以下是所需的导入语句
import com.moengage.core.MoEngage;
我建议您在 IDE (Android Studio) 中启用自动导入,这将帮助您管理导入。
如果这不能解决您的问题,请告诉我。或者,您可以通过 support@moengage.com 给我们写信
【讨论】:
我正在使用 VScode,所以我没有自动导入。由于复制粘贴所有内容而不是自己输入而错过了它,但这有效,谢谢!以上是关于运行 android 时 Moengage 错误的 React-native 设置:包 MoEngage 不存在的主要内容,如果未能解决你的问题,请参考以下文章