4

UiLifecycleHelperEclipse と Unity の間のプラグインでクラスを呼び出そうとすると、いくつかのエラーが発生します。libsプロジェクトのフォルダーに facebooksdk.jar をコピーしてから、

  • プロパティ > Java ビルド パス > JAR を追加

また、「ライブラリ」を単純に追加しようとしました:

  • プロパティ > Android、ボタン付きAdd...

クラスを使用しない場合はエラーは発生しませんUiLifecycleHelper(クラスがなくても問題なくLog.i動作します)。また、Unity との接続がなくても、Activity を拡張する単純なクラスを使用すると、Facebook にうまく接続されます。testFuncUiLifecycleHelper

また、他のトピックで推奨されているように、Java コンパイラを 1.6 に設定しました。Facebook.jarと私のプロジェクトを正しく接続する方法を教えてください。

ログは次のとおりです。

01-05 17:17:53.834: E/dalvikvm(25005): Could not find class 'com.project.aef.MainActivity$1', referenced from method com.project.aef.MainActivity.<init>
01-05 17:17:53.835: E/dalvikvm(25005): Could not find class 'com.facebook.UiLifecycleHelper', referenced from method com.project.aef.MainActivity.onCreate
01-05 17:17:53.841: E/AndroidRuntime(25005): FATAL EXCEPTION: main
01-05 17:17:53.841: E/AndroidRuntime(25005): java.lang.NoClassDefFoundError: com.project.aef.MainActivity$1
01-05 17:17:53.841: E/AndroidRuntime(25005):    at com.project.aef.MainActivity.<init>(MainActivity.java:24)
01-05 17:17:53.841: E/AndroidRuntime(25005):    at java.lang.Class.newInstanceImpl(Native Method)
01-05 17:17:53.841: E/AndroidRuntime(25005):    at java.lang.Class.newInstance(Class.java:1319)
01-05 17:17:53.841: E/AndroidRuntime(25005):    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)

編集: Twitter で同様の問題が発生しました。最終的に、現在のコードの代わりにアクティビティを使用するようにコードを変更しました。コードがソフトウェアの外部で正常に動作する理由がわかりません。接続したときではありません。また、Unity の代わりに Libgdx を使用してゲームを作成しました。問題が解決しました。

4

1 に答える 1

5

あなたの問題はstartActivityにあります。適切に設定する必要があります。次に例を示します。

public class MyActivity extends Activity {
 ...

 static final int PICK_CONTACT_REQUEST = 0;

 protected boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
         // When the user center presses, let them pick a contact.
         startActivityForResult(
             new Intent(Intent.ACTION_PICK,
             new Uri("content://contacts")),
             PICK_CONTACT_REQUEST);
        return true;
     }
     return false;
 }

 protected void onActivityResult(int requestCode, int resultCode,
         Intent data) {
     if (requestCode == PICK_CONTACT_REQUEST) {
         if (resultCode == RESULT_OK) {
             // A contact was picked.  Here we will just display it
             // to the user.
             startActivity(new Intent(Intent.ACTION_VIEW, data));
         }
     }
 }
}

ご覧のとおり、コードに「Intent」がありません。そのため、このエラーが発生します。

于 2014-01-05T17:28:18.433 に答える