11

Google スプレッドシート API を使用する必要がある Android アプリを作成しようとしています。私はこれが初めてなので、APIのバージョン3から始めています: https://developers.google.com/google-apps/spreadsheets/

すべての手順に従い、すべての jar ファイルをlibプロジェクト フォルダーのサブフォルダーにダウンロードしてから、通常どおり Eclipse のビルド パスに追加しました。したがって、Oauth 2.0 を実行する Java の例はありませんが、次のように宣言しようとしました。

SpreadsheetService service = new SpreadsheetService("v1");

しかし、この単純な行をエミュレートすると、エラーが発生します。

java.lang.NoClassDefFoundError: com.google.gdata.client.spreadsheet.SpreadsheetService

ドキュメントに含まれているすべてのjarを使用しており、インポートがあります:

import com.google.gdata.client.spreadsheet.SpreadsheetService;

しかし、私は完全に迷っています。開始して Google API に接続し、スプレッドシートを操作するために他に何をすればよいかわかりません。

4

4 に答える 4

4

OAuth2.0なしのサンプルコード。ただし、セキュリティ上の理由からOAuthを実行することをお勧めします。また、以下の権限を追加する必要があります。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

サンプルコード:-

try {
    SpreadsheetEntry spreadsheet;
    service = new SpreadsheetService("Spreadsheet");
    service.setProtocolVersion(SpreadsheetService.Versions.V3);
    service.setUserCredentials("username", "password");//permission required to add in Manifest
    URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
    feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);

    List<SpreadsheetEntry> spreadsheets = feed.getEntries();
    if (spreadsheets.size() > 0) {
        spreadsheet = spreadsheets.get(i);//Get your Spreadsheet
   }
} catch (Exception e) {
    e.printStackTrace();
}
于 2012-10-16T17:30:08.693 に答える
4

本当にありがとうスコーピオン!できます!!私はこれをあまりにも長い間試してきました。ここに私の解決策があります:私は新しいプロジェクトを開始し、これらのjarを含めました:

gdata-client-1.0
gdata-client-meta-1.0
gdata-core-1.0
gdata-spreadsheet-3.0
gdata-spreadsheet-meta-3.0
guava-13.0.1  

と私のコード:

    SpreadsheetService spreadsheet= new SpreadsheetService("v1");
    spreadsheet.setProtocolVersion(SpreadsheetService.Versions.V3);

    try {
        spreadsheet.setUserCredentials("username", "password");
        URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
        SpreadsheetFeed feed = spreadsheet.getFeed(metafeedUrl, SpreadsheetFeed.class);

        List<SpreadsheetEntry> spreadsheets = feed.getEntries();
        for (SpreadsheetEntry service : spreadsheets) {             
            System.out.println(service.getTitle().getPlainText());
       }
    } catch (AuthenticationException e) {           
        e.printStackTrace();
    }

もちろん、これはメインスレッドではなく別のスレッドで実行されます。OAuth 2.0 の Java ドキュメントはありませんが、試してみます。できない場合は、ここで質問します。繰り返しますが、どうもありがとうございました。今回の作業で十分なお手伝いができれば幸いです。:)

于 2012-10-17T12:19:08.217 に答える