私はgoogle-api-java-clientを使用するEclipseで簡単なAndroidプロジェクトを構築しています。私はそれを稼働させるためにthis tutorialに従おうとしています。 EclipseのAndroidプロジェクトにJARを追加する方法について、私はSOから検索しました。ほとんどの人はAndroidプロジェクト内のlib/
フォルダにJARを追加してから、それらのJARをプロジェクトのビルドパスに追加することをお勧めします。私はこれら2つのことをやった。プロジェクトはうまくコンパイルされます(いずれの場合でも、Eclipseはエラーについて不平を言うことはありません)。しかし、エミュレータでAndroidアプリを実行すると、google-api-java-client
JARでクラスをインスタンス化しようとすると、ClassDefNotFoundError
になります。たとえば、eclipseでアンドロイドプロジェクトに外部jarを追加する
new com.google.api.client.http.apache.ApacheHttpTransport();
Raises ClassDefNotFoundError
です。ここで
は、エラーの原因となるコードです:ここでは
package com.mycom.android;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
public class SearchRunner implements OnClickListener {
private static final String API_KEY = "AIzaSyA1Mg3xWXfoov4HdPUzYY2NwTxuvCev1-E";
private static final String PLACES_SEARCH_URL = "";
@Override
public void onClick(View v) {
EditText editText = (EditText) v;
String searchText = editText.getText().toString();
runSearch(searchText);
}
protected void runSearch(String searchText) {
new com.google.api.client.http.apache.ApacheHttpTransport();
}
}
は、Eclipse LogCatから、より完全な出力です:多分
12-21 15:42:11.402: E/dalvikvm(3412): Could not find class 'com.google.api.client.http.apache.ApacheHttpTransport', referenced from method com.mycom.android.SearchRunner.runSearch
12-21 15:42:11.402: W/dalvikvm(3412): VFY: unable to resolve new-instance 70 (Lcom/google/api/client/http/apache/ApacheHttpTransport;) in Lcom/mycom/android/SearchRunner;
12-21 15:42:11.402: D/dalvikvm(3412): VFY: replacing opcode 0x22 at 0x0000
12-21 15:42:11.402: D/dalvikvm(3412): DexOpt: unable to opt direct call 0x00ca at 0x02 in Lcom/mycom/android/SearchRunner;.runSearch
12-21 15:42:11.682: I/MapActivity(3412): Handling network change notification:CONNECTED
12-21 15:42:11.682: E/MapActivity(3412): Couldn't get connection factory client
12-21 15:42:11.791: D/gralloc_goldfish(3412): Emulator without GPU emulation detected.
12-21 15:42:12.532: D/dalvikvm(3412): GC_CONCURRENT freed 102K, 3% free 10520K/10823K, paused 5ms+7ms
12-21 15:42:18.422: D/AndroidRuntime(3412): Shutting down VM
12-21 15:42:18.422: W/dalvikvm(3412): threadid=1: thread exiting with uncaught exception (group=0x409951f8)
12-21 15:42:18.482: E/AndroidRuntime(3412): FATAL EXCEPTION: main
12-21 15:42:18.482: E/AndroidRuntime(3412): java.lang.NoClassDefFoundError: com.google.api.client.http.apache.ApacheHttpTransport
12-21 15:42:18.482: E/AndroidRuntime(3412): at com.mycom.android.SearchRunner.runSearch(SearchRunner.java:20)
上記のリンクは非常に有益であることが判明しました。ありがとう! – nathansizemore