Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将Apptentive从1.7.3版升级到2.1.1版时出现NoClassDefFoundError_Android_Apptentive - Fatal编程技术网

Android 将Apptentive从1.7.3版升级到2.1.1版时出现NoClassDefFoundError

Android 将Apptentive从1.7.3版升级到2.1.1版时出现NoClassDefFoundError,android,apptentive,Android,Apptentive,我正在尝试将Apptentive从1.7.3版本升级到最新的2.1.1版本。 然而,每当我调用方法 showMessageCenter(getActivity()),要启动Apptentive消息对话框,它会崩溃并为ViewActivity提供NoClassDefFoundError。 日志如下: java.lang.NoClassDefFoundError:com.apptentive.android.sdk.ViewActivity 01-08 11:30:41.837 E/AndroidR

我正在尝试将Apptentive从1.7.3版本升级到最新的2.1.1版本。 然而,每当我调用方法
showMessageCenter(getActivity()),要启动Apptentive消息对话框,它会崩溃并为ViewActivity提供NoClassDefFoundError。 日志如下:

java.lang.NoClassDefFoundError:com.apptentive.android.sdk.ViewActivity

01-08 11:30:41.837 E/AndroidRuntime(30049):位于com.apptentive.android.sdk.module.engagement.EngagementModule.launchInteraction(EngagementModule.java:75)

01-08 11:30:41.837 E/AndroidRuntime(30049):位于com.apptentive.android.sdk.module.engagement.engagement.EngagementModule.doEngage(EngagementModule.java:64)

01-08 11:30:41.837 E/AndroidRuntime(30049):在com.apptentive.android.sdk.module.engage.engagement.EngagementModule.engage(EngagementModule.java:53)

01-08 11:30:41.837 E/AndroidRuntime(30049):位于com.apptentive.android.sdk.module.engagement.EngagementModule.engageInternal(EngagementModule.java:31)

01-08 11:30:41.837 E/AndroidRuntime(30049):位于com.apptentive.android.sdk.ApptentiveInternal.showMessageCenterInternal(ApptentiveInternal.java:191)

01-08 11:30:41.837 E/AndroidRuntime(30049):位于com.apptentive.android.sdk.apptentive.showMessageCenter(apptentive.java:635)

01-08 11:30:41.837 E/AndroidRuntime(30049):位于com.apptentive.android.sdk.apptentive.showMessageCenter(apptentive.java:619)

我在build.gradle文件中的代码是:

compile 'com.apptentive:apptentive-android:2.1.1@aar'
java代码是:

    Button writeUs = (Button) fitnessSyncDialog.findViewById(R.id.button_click_write_us);
writeUs.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Apptentive.showMessageCenter(getActivity());
    }
});
同样的代码也适用于1.7.3版本。 有没有人遇到过这个问题,或者有人能建议这里会出现什么问题


提前感谢您提供的宝贵建议。

您可能没有在应用程序清单中包含对ViewActivity的引用。例如:

<meta-data android:name="apptentive_api_key" android:value="YOUR_API_KEY_GOES_HERE"/>
  <activity android:name="com.apptentive.android.sdk.ViewActivity"
            android:theme="@style/ApptentiveTheme"/>
repositories {
  jcenter()
}

dependencies {
  // These Google support libraries are required. Use the latest available.
  compile 'com.android.support:support-v4:23.0.1'
  compile 'com.android.support:appcompat-v7:23.0.1'
  compile 'com.android.support:cardview-v7:23.0.1'
  // The Apptentive SDK
  compile 'com.apptentive:apptentive-android:2.1.1@aar'
}

更多信息可在此处找到

尝试清除并生成,然后重新加载项目,即使在清除该错误后也是如此。尽管在1.7.3版本中,即使没有任何干净的构建,它也能工作。嗨,杰克,谢谢你的回复,但是上面的元数据键在那里。同样适用于修订版1.7.3,无任何变更。这是奇怪的行为。到目前为止,我已将代码恢复为1.7.3。但是任何建议都会很有帮助,这样新版本中的功能就可以在我的应用程序中使用。嘿,杰克,我看到你在依赖项中使用了SupportLibrary 23.0.1。我使用的是支持libs版本22。所以最新的apptentive版本是否可能依赖于support libs 23+版本。如果是,将与support libs 22版本一起使用的apptentive版本是什么。如果是这样的话,错误似乎是误导。嗨,杰克,我发现是这样的。最新的库仅适用于支持库23+。