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

もう 1 つの可能性は、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 に答える