1

こんにちは仲間の開発者、

私はAndroid開発のまったくの初心者であり、GooglePlacesApiを使用するアプリケーションを作成しようとしています。私はEclipseをセットアップし、さまざまなjarファイルを配置する場所を見つけるために多くの調査を行いました。(それ自体がプロジェクトだった少年)。さて、今私の問題は、DavyのTech Blog(http://ddewaele.blogspot.com/2011/05/introducing-google-places-api.html)をフォローしていて、いくつかの問題が発生していることです。

次のJarをダウンロードしました:google-api-client-1.4.1.beta google-api-client-1.8.0.beta(依存関係あり)google-collect-1.0-rc1

これらをlibsフォルダーに追加しました

アプリケーションは正しくコンパイルできますが、アプリケーションをAndroidシミュレーターで実行すると、「残念ながら、アプリケーションが停止しました」というエラーメッセージが表示されます。LogCatを調べると、次のことがわかります。

05-10 04:26:32.456:I / System.out(1408):検索を実行.... 05-10 04:26:32.456:I / System.out(1408):-------- ----------- 05-10 04:26:32.486:I / dalvikvm(1408):メソッドcomから参照されているメソッドcom.google.api.client.googleapis.GoogleHeaders.setUserAgentが見つかりませんでした。 google.api.client.googleapis.GoogleHeaders.setApplicationName 05-10 04:26:32.486:W / dalvikvm(1408):VFY:仮想メソッド279を解決できません:Lcom / google / api / client / googleapis / GoogleHeaders; .setUserAgent (Ljava / lang / String;)V 05-10 04:26:32.486:D / dalvikvm(1408):VFY:0x0000でopcode0x6eを置き換えます

メソッドは次のようになります。

public static HttpRequestFactory createRequestFactory(final HttpTransport transport) { 
    return transport.createRequestFactory(new HttpRequestInitializer() {
        public void initialize(HttpRequest request) {
            GoogleHeaders headers = new GoogleHeaders();
            headers.setApplicationName("MyFirstLocationApp");
            request.headers=headers;
            JsonHttpParser parser = new JsonHttpParser();
            parser.jsonFactory = new JacksonFactory();
            request.addParser(parser);
        }
    });
}

これは、私が含めたJarファイルと関係があると思います。setApplicationNameはgoogle-api-client-1.8.0.betaにあり、setUserAgentはgoogle-api-client-1.4.1.beta(Httpクラスの下)にあると思います。

ただし、問題は、必要なオブジェクトのほとんどがgoogle-api-client-1.8.0.betaではなく、google-api-client-1.4.1.betaにあることです。

これらは私が持っている輸入品です:

import com.google.api.client.googleapis.GoogleHeaders;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.HttpResponseException;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.json.JsonHttpParser;
import com.google.api.client.json.jackson.JacksonFactory;

どんな助けでも大歓迎です。これは私を狂わせています。

/イムラン

4

2 に答える 2

4

だから私は以下の1.8.0のものだけを含め、APIの使用法ドキュメントによって提案されたjarだけを含めました(libのフォルダーにそれらをD&Dしただけです)。使用しているバージョンを確認してくださいが、インディゴは以前のバージョンよりもこのようなものをより適切に処理します)

google-api-client-1.8.0-beta.jar
google-api-client-android2-1.8.0-beta.jar
google-http-client-1.8.3-beta.jar
google-http-client-android2-1.8.3-beta.jar
google-oauth-client-1.8.0-beta.jar
gson-2.1.jar
guava-11.0.1.jar
jackson-core-asl-1.9.4.jar
jsr305-1.3.9.jar
protobuf-java-2.2.0.jar

次に、新しいAPI用にコードを少し変更しました

 public static HttpRequestFactory createRequestFactory(final HttpTransport transport) { 
        return transport.createRequestFactory(new HttpRequestInitializer() {
            public void initialize(HttpRequest request) {
                GoogleHeaders headers = new GoogleHeaders();
                headers.setApplicationName("MyFirstLocationApp");
                request.setHeaders(headers);
                JsonHttpParser parser = new JsonHttpParser(new JacksonFactory());
                request.addParser(parser);
            }
        });
    }

コンパイルされ、簡単なテストでは問題なく動作するようです。ストレート1.8.0を使用して試して、動作するかどうかを確認することをお勧めします。

于 2012-05-10T05:43:00.973 に答える
1

android studioを使用している場合は、google-api-client-1.5.0-beta.jarファイルをダウンロードしてプロジェクトのlibsフォルダーに追加し、jarファイルを右クリックして[ライブラリとして追加]を選択します。build.gradleファイルに「compilefiles('libs / google-api-client-1.5.0-beta.jar')」という行が含まれていることを確認してください。次に、プロジェクトをビルドします。

于 2015-07-27T09:57:22.433 に答える