2

我正在尝试将 Apptentive 从 1.7.3 版本升级到最新的 2.1.1 版本。但是,每当我调用
Apptentive.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.EngagementModule.doEngage(EngagementModule.java:64)

01-08 11:30:41.837 E/AndroidRuntime(30049): 在 com.apptentive.android.sdk.module.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 版本。有没有人遇到过这个问题或者任何人都可以建议这里可能出现什么问题?

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

4

1 回答 1

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"/>

另一种可能性是您没有在 build.gradle 中包含对 Apptentive aar 的引用。例如:

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'
}

更多信息可以在这里找到http://www.apptentive.com/docs/android/integration/

于 2016-01-08T21:05:36.360 回答