1

Android用のAdobeAIRアプリを開発しています。そこで、GooglePlay GameServicesにアクセスするANE(ActionScript Native Extensions)を作ってみました。しかし、次の問題のため、現在は機能しています。

[エラー]

07-22 11:22:44.976: W/Bundle(24987): Key com.google.android.gms.games.APP_ID expected String but value was a java.lang.Integer.  The default value <null> was returned.
07-22 11:22:44.991: W/Bundle(24987): Attempt to cast generated internal exception:
07-22 11:22:44.991: W/Bundle(24987): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
07-22 11:22:44.991: W/Bundle(24987):    at android.os.Bundle.getString(Bundle.java:1069)
07-22 11:22:44.991: W/Bundle(24987):    at abh.a(SourceFile:137)
07-22 11:22:44.991: W/Bundle(24987):    at ato.a(SourceFile:450)
07-22 11:22:44.991: W/Bundle(24987):    at com.google.android.gms.games.service.GamesIntentService.onHandleIntent(SourceFile:2257)
07-22 11:22:44.991: W/Bundle(24987):    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
07-22 11:22:44.991: W/Bundle(24987):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 11:22:44.991: W/Bundle(24987):    at android.os.Looper.loop(Looper.java:137)
07-22 11:22:44.991: W/Bundle(24987):    at android.os.HandlerThread.run(HandlerThread.java:60)

[原因]

  • このエラーは、appid-number を AIR APP の Manifest-file(XXXX-app.xml) に直接書き込む属性です。→native-app(Java)を開発する場合は「res」フォルダ(res/values/string.xml)を参照します。でも、AIRアプリは「res」フォルダを明示的に読み込めないので、仕方ありません。(正解?)</li>

元。)

(XXXX-app.xml)
<manifestAdditions><![CDATA[<manifest>
    <application>
        <meta-data android:name="com.google.android.gms.games.APP_ID"
                android:value="123456789012" />     
    </application>
</manifest>]]></manifestAdditions>

良いアイデアはありますか?

4

1 に答える 1

2

次のように、android:value の先頭にバックスラッシュ スペースを追加する必要がある場合があります。

<meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="\ 123456789012" /> 

これは、id が文字列として想定されているためですが、「123456789012」だけを入力すると、XML から整数として解釈されます。

于 2013-10-16T03:27:43.007 に答える