わかりました、誰かがこれを引っ張ったかどうか知りたいですか? 私はネイティブ拡張を作成しており、ネイティブ JAR はリフレクションを介して Google Play Services を使用しています。Google Play Services ライブラリをネイティブ拡張機能に追加しました。次のplatform.xml
ようになります。
<platform xmlns="http://ns.adobe.com/air/extension/3.1">
<packagedDependencies>
<packagedDependency>android-support-v4.jar</packagedDependency>
<packagedDependency>google-play-services.jar</packagedDependency>
</packagedDependencies>
<packagedResources>
<packagedResource>
<packageName>com.google.android.gms</packageName>
<folderName>google-play-services-res</folderName>
</packagedResource>
</packagedResources>
</platform>
私のandroid
ビルドフォルダーは次のような構造になっています:
android
- nativeLib.jar
- android-support-v4.jar
- google-play-services-res (folder)
- google-play-services.jar
- library.swf
ANE w/o Google Play Services ライブラリ (約 5.1 mb) をビルドすると、ANE にたとえば 800 kb があることがわかります。このように Google Play Services の依存関係を追加した後、ANE には約 6 MB あります。これは、記載されているこれらの JARplatform.xml
が何らかの形でネイティブ拡張にバンドルされていることを示しています。現在、私のネイティブ JAR には、Google Play Services ライブラリからのメソッドの呼び出しが失敗したかどうかを確認できる関数があります。私が作成した AIR Android アプリと、この生成された ANE を統合した場所から呼び出すと、常に失敗します。
したがって、私のnative
JAR とgoogle-play-services
JAR は、ANE にパックする前に隣り合って立っていますが、ネイティブ jar からメソッドをトリガーした後、google-play-services.jar がどこにでもあることを認識していないことがわかりました。
記録として、AIR とネイティブ ライブラリのブリッジングに問題はありません。すべての呼び出しは適切に機能し、ActionScript ファイルに公開しているインターフェイスは完全に機能します。ネイティブ ライブラリが Google Play の状況に応じて特定のアクションを実行しているだけです。サービスが見つかるかどうか、私の場合は -> サービスが見つからない。
私が間違っている可能性のあるアイデアと、これを引き出す方法はありますか?
前もって感謝します。