このコードは、ImageManager に読み込まれた IconUri を取得し、返された Drawable を保存して、Image を LibGDX に読み込むことができるように機能していました。
残念ながら、Google から最新のライブラリ (21 日前のリリース) に更新して以来、このメソッドは機能しなくなり、「残念ながら、Google Play Services が停止しました」というポップアップ ダイアログ以外に、スタック トレースやエラー メッセージが表示されません。
本当に奇妙なことに、そのダイアログで [OK] をクリックするまで、Google Play Services は停止しません (私のゲームは、logcat で受信および送信されたメッセージを処理し続けます)。その後、Google Play Services はシャットダウンします。
ライブラリの古いバージョンに戻りますが、この新しいバージョンも、RealTimeReliable メッセージの送受信により、より適切に動作しています。
なぜこれが新しいライブラリで機能しなくなるのか、誰にもわかりますか?
また、プレイヤーのアバターを Android にロードし、libGDX の「ローカル」ディレクトリに保存して、libGDX の Drawable として取り込んで配置できるようにする他の方法についてフィードバックがある場合は、次のようになります。とても有難い!
また、注意してください
@Override
public void requestPic(final String participantID){
//try to pull the pic out
dLog("attempting to request picture");
if(CheckRoomisDisconnected()) {
return;
}
for (final Participant p : mRoomCurrent.getParticipants()) {
if (p.getParticipantId() == participantID){
dLog("found matching particpantID");
try {
runOnUiThread(new Runnable(){
//@Override
public void run(){
ImageManager IM = ImageManager.create(activityContext);
IM.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri arg0, Drawable drawable) {
dLog("Holy Moly it seems to work");
if(drawable == null) {
mGHInterface.picLoaded(participantID);
} else {
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
try {
FileOutputStream out = openFileOutput("pic" + participantID + ".png", Context.MODE_MULTI_PROCESS);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
mGHInterface.picLoaded(participantID);
} catch (Exception e) {
e.printStackTrace();
dLog(e.getStackTrace().toString());
}
}
}
}, p.getIconImageUri());
}
});
}catch (final Exception ex){
dLog(ex.getStackTrace().toString());
ex.printStackTrace();
}
}
}
}