2

こんにちは、Glympse API を使用して Android 用のアプリをプログラミングしようとしていますが、createGlymspe 関数を使用して Glympse インスタンスを作成しようとするたびに、このエラーが発生します

 08-21 11:10:47.014: E/AndroidRuntime(22391): FATAL EXCEPTION: main
08-21 11:10:47.014: E/AndroidRuntime(22391): java.lang.ExceptionInInitializerError
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.hal.l.<init>(ContextHolder.java:29)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.hal.bd.l(HalFactory.java:23)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.a.gz.a(LibFactory.java:35)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.api.ad.a(GlympseFactory.java:72)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.api.ad.a(GlympseFactory.java:54)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.lite.LiteFactory.createGlympse(LiteFactory.java:42)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at pcr.test02.MainActivity$1.onClick(MainActivity.java:27)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at android.view.View.performClick(View.java:3558)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at android.view.View$PerformClick.run(View.java:14157)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at android.os.Handler.handleCallback(Handler.java:605)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at android.os.Handler.dispatchMessage(Handler.java:92)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at android.os.Looper.loop(Looper.java:137)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at android.app.ActivityThread.main(ActivityThread.java:4514)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at java.lang.reflect.Method.invokeNative(Native Method)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at java.lang.reflect.Method.invoke(Method.java:511)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
08-21 11:10:47.014: E/AndroidRuntime(22391):    at dalvik.system.NativeStart.main(Native Method)
08-21 11:10:47.014: E/AndroidRuntime(22391): Caused by: java.lang.NoClassDefFoundError: com.glympse.android.api.R$drawable
08-21 11:10:47.014: E/AndroidRuntime(22391):    at com.glympse.android.hal.db.<clinit>(ResourceGateway.java:13)
08-21 11:10:47.014: E/AndroidRuntime(22391):    ... 18 more

コードは次のとおりです。

package pcr.test02;

import com.glympse.android.lite.GGlympseLite;
import com.glympse.android.lite.LiteFactory;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
    GGlympseLite glympse;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        glympse = LiteFactory.createGlympse(getBaseContext(), "sandbox.glympse.com", "I will not share my key ;-)");
        Button btn1 = (Button) findViewById(R.id.button1);
        btn1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
        Toast.makeText(getApplicationContext(), "Glymp",
        Toast.LENGTH_LONG).show();

        }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

問題がコンテキストかどうかはわかりませんが、「これ」で変更しようとしましたが、役に立ちませんでした

4

1 に答える 1

2

問題を再現できました。コードに問題はありませんが、プロジェクトのセットアップに問題がある可能性が非常に高いです。

最初に確認することは、GlympseApiLite.jar をプロジェクトの「libs」フォルダーに直接配置していないことを確認することです。多くの Android 開発者は、Android ライブラリのインポート方法が変更されたため、Android 開発者ツール (ADT) 17 のリリースでこのエラーを確認し始めました。

代わりに (Eclipse を使用している場合)

  1. [ファイル] -> [インポート] -> [Android] -> [既存の Android コードをワークスペースに] に移動します
  2. {ライブラリをダウンロードした場所}/lib/GlympseApiLite で GlympseApiLite プロジェクトを見つけます。
  3. [プロジェクトのインポート] ダイアログで [完了] をクリックします。

これにより、GlympseApiLite がプロジェクトとしてインポートされます。次のステップは、プロジェクトからそのプロジェクトを参照することです。

  1. プロジェクトを右クリック
  2. プロパティを選択
  3. 左側のリストで Android を選択します
  4. [ライブラリ] セクションで、[追加...] を選択します。
  5. GlympseApi を選択し、OK

これで問題が解決するかどうかお知らせください。問題が発生した場合に備えて、セットアップ ドキュメント、特にステップ バイ ステップ ガイドを参照してください。

ステップバイステップ (PDF): https://developer.glympse.com/Content/client/lite/android/tutorials/Glympse_Api_Lite_Android_StepByStep.pdf

簡単な紹介 (HTML): https://developer.glympse.com/Content/client/lite/android/guides/Glympse_Api_Lite_Android_QuickIntroduction.html

編集 (返信への返信):

GlympseApi プロジェクトがそのバージョンの Android API に対してビルドされているため、「ターゲット 'android-17' を解決できません」というエラーが表示されます。GlympseAPI の「project.properties」ファイルを編集し、「target」の値をインストールしたバージョンに変更できます。現時点で最新のものは android-18 です。このスレッドの追加情報:ターゲット 'android-16' を解決できません

Jar 不一致エラーの場合。この他の StackOverflow スレッドを参照してください: Jar Mismatch Found 2 versions of android-support-v4.jar in the dependency list

于 2013-08-21T22:10:06.783 に答える