0

Mapアプリケーションの開発にAndroid2.3.3とGoogleAPIを使用しています。

問題は以下のコードにあります:

GoogleHeaders headers = new GoogleHeaders();
headers.setApplicationName("My Sample Google App on Maps");
request.setHeaders(headers);

以下のエラーで撮影します、

E/AndroidRuntime(382): FATAL EXCEPTION: main
E/AndroidRuntime(382): java.lang.IllegalAccessError: tried to access field com.google.api.client.googleapis.GoogleHeaders.userAgent from class com.google.api.client.googleapis.GoogleHeaders
E/AndroidRuntime(382):  at com.google.api.client.googleapis.GoogleHeaders.setApplicationName(GoogleHeaders.java:129)
E/AndroidRuntime(382):  at com.example.main.MapActivity$2.initialize(MapCallActivity.java:292)
E/AndroidRuntime(382):  at com.google.api.client.http.HttpRequestFactory.buildRequest(HttpRequestFactory.java:91)
E/AndroidRuntime(382):  at com.google.api.client.http.HttpRequestFactory.buildGetRequest(HttpRequestFactory.java:120)
E/AndroidRuntime(382):  at com.example.main.MapActivity.MyMethod(MapCallActivity.java:248)
E/AndroidRuntime(382):  at com.example.main.MapActivity.myMethod2(MapCallActivity.java:172)
E/AndroidRuntime(382):  at com.example.main.MapActivity.onCreate(MapCallActivity.java:108)
E/AndroidRuntime(382):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(382):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
E/AndroidRuntime(382):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(382):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(382):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(382):  at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(382):  at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(382):  at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(382):  at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(382):  at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(382):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(382):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(382):  at dalvik.system.NativeStart.main(Native Method)

私は立ち往生していて、これを超えて移動することができないので、私に説明してください。

使用されるAPI:

google-api-client-googleapis-1.4.1-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

助けていただければ幸いです!

4

2 に答える 2

0

適切な権限が設定されているかどうかを確認してください。コンパイラは、変更しようとしているオブジェクトにアクセスできないと判断します。http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessError.html

于 2012-04-12T00:35:29.997 に答える
0

私は自分で解決策を得ました。問題は Googleapis-1.4.1-beta.jar インポートにあり、内部のアクセス制限のためにコンパイラがデータを変更できなかった原因でした。そして、GoogleHeaders.java で問題が発生していました。

コンパイラにアクセスが必要な setApplicationName メソッドを介して userAgent 変数を設定します。ただし、これは現在、以下のように変更されています。

以下は、GoogleHeaders の新しいコードです。そのようなすべてのユーザーに役立つことを願っています。

HttpHeaders headers = new HttpHeaders();
headers.setUserAgent("Searching Places..");
request.setHeaders(headers);

request.addParser(new JsonHttpParser(new JacksonFactory()));

GoogleHeaders の使用を完全に削除すると、ナイフのようにスムーズに動作します。

乾杯!

于 2012-04-16T09:44:16.457 に答える