※ ChatGPTを利用し、要約された質問です(原文:現在Google App Engineにてtwitter4jのAPIを)
Twitter4jのAPIを使用してトレンドを取得する際のエラー
現在Google App Engineにてtwitter4jのAPIを
現在Google App Engineにてtwitter4jのAPIを使用してtwitterのトレンドを取得して表示するjspの画面作成をやっています。
そこで以下のエラーが取れずに、サーバーエラーとなるため困っています。
◆エラー内容
-------------------------------------------------------------
java.lang.IncompatibleClassChangeError: Expected static method twitter4j.http.BASE64Encoder.encode([B)Ljava/lang/String;
at twitter4j.http.BasicAuthorization.encodeBasicAuthenticationString(BasicAuthorization.java:59)
at twitter4j.http.BasicAuthorization.<init>(BasicAuthorization.java:50)
at twitter4j.TwitterFactory.getInstance(TwitterFactory.java:87)
at com.twitter.Turuter.getTwitterTrends(TestTwitter.java:110)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:72)
・・・
-------------------------------------------------------------
◆TestTwitter.java:110
-------------------------------------------------------------
public List<String> getTwitterTrends(){
boolean isExcludeHashTags = true;
TwitterFactory tf = new TwitterFactory();
Twitter twitter = tf.getInstance(id, pwd); 【Line:110】
-------------------------------------------------------------
環境は以下の通りです。
Eclipse:3.4.2
JDK:1.6.0_20
AppEngine SDK:1.3.3.1
GWT SDK:2.0.3
twitter4j:2.1.3
「java.lang.IncompatibleClassChangeError」はコンパイラのバージョンが異なるメソッドの呼び出しなどで出てしまう様ですが、twitter4jのMANIFESTでは「Build-Jdk: 1.6.0_17」と書かれています。SDKのバージョンは上記環境のバージョンと「1.6.0_20」を試しましたが、どちらも同様のエラーでした。
どなたか解決方法をご教授頂けないでしょうか。よろしくお願いします。
補足
回答ありがとうございます。 twitter4j.http.BASE64Encoderクラスは twitter4j.internal.http.BASE64Encoderにあるようです internalってのを挟んでるのでのが分からないのですが。 twitter4jのバージョンは2.1.2と2.1.0も使ってみました。 2.1.2では同様のエラーが発生しました。 2.1.0は「java.lang.NoSuchMethodError: twitter4j.TwitterFactory.getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;」となりました。 もう少しこちらでどなたか回答頂けないか待ってみることにします。 それでも解決しない場合にはそちらを利用してみようと思います。