我有一个使用nativescript-adobe-marketing-cloud
版本1.3.1
的NativeScript应用程序。
它作为本地tgz
安装,因此我在项目的根目录下有一个文件nativescript-adobe-marketing-cloud-1.3.1.tgz
,在package.json
文件中的这一行是
"nativescript-adobe-marketing-cloud": "file:nativescript-adobe-marketing-cloud-1.3.1.tgz",
我在单个文件analytics.middleware.ts
中使用了此插件,其中有以下内容:
import { AdobeAnalytics } from 'nativescript-adobe-marketing-cloud';
export const analyticsMiddleware: Function = store => next => action => {
AdobeAnalytics.getInstance().optIn();
...
AdobeAnalytics.getInstance().trackAction('action', { ... });
...
}
到目前为止,很好。
然后,我扩展了该插件,打包并使用tgz
更新了package.json
文件及其在tns plugin add nativescript-adobe-marketing-cloud-1.5.0.tgz
中的条目。我使用的方法的签名不变,因此代码中没有要更新的内容。执行tns run android/ios
时,所有内容均可正确编译,并且该应用程序已安装在设备/模拟器中。但是,当应用启动时,它会崩溃并显示以下错误:
System.err: java.lang.RuntimeException: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException:
System.err:
System.err: Error calling module function
System.err:
System.err: Error calling module function
System.err:
System.err: Error calling module function
System.err:
System.err: Error: com.tns.NativeScriptException: Failed to find module: "nativescript-adobe-marketing-cloud", relative to: app/tns_modules/
System.err: com.tns.Module.resolvePathHelper(Module.java:146)
System.err: com.tns.Module.resolvePath(Module.java:55)
System.err: com.tns.Runtime.runModule(Native Method)
System.err: com.tns.Runtime.runModule(Runtime.java:530)
System.err: com.tns.Runtime.run(Runtime.java:522)
System.err: com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:19)
System.err: android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1130)
System.err: android.app.ActivityThread.handleBindApplication(ActivityThread.java:5965)
System.err: android.app.ActivityThread.-wrap1(Unknown Source:0)
System.err: android.app.ActivityThread$H.handleMessage(ActivityThread.java:1755)
System.err: android.os.Handler.dispatchMessage(Handler.java:106)
System.err: android.os.Looper.loop(Looper.java:164)
System.err: android.app.ActivityThread.main(ActivityThread.java:6753)
System.err: java.lang.reflect.Method.invoke(Native Method)
System.err: com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
System.err: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
System.err: File: "<unknown>, line: 1, column: 265
System.err:
System.err: StackTrace:
System.err: Frame: function:'require', file:'', line: 1, column: 266
System.err: Frame: function:'', file:'file:///data/data/appid/files/app/common/middleware/analytics/analytics.middleware.js', line: 7, column: 44
System.err: Frame: function:'require', file:'', line: 1, column: 266
System.err: Frame: function:'', file:'file:///data/data/appid/files/app/app.module.js', line: 22, column: 30
System.err: Frame: function:'require', file:'', line: 1, column: 266
System.err: Frame: function:'', file:'file:///data/data/appid/files/app/main.js', line: 6, column: 20
System.err: Frame: function:'require', file:'', line: 1, column: 266
我尝试删除node_modules
,package-lock.json
和npm-shinrkiwrap.json
并进行全新安装,但这无济于事。
我的环境是:
tns-android 3.4.2
tns-ios 3.4.1
tns 3.4.3
node 9.11.1
npm 5.8.0