1

フラグメント内で Google マップを使用しています。それはうまく機能し、すべてがうまくいきます。しかし、マップのフラグメントを離れると、非常に奇妙になります!

また、json.io lib を使用して、サーバーから / への JSON を解析しています。マップ フラグメントを閉じた後、json.io から次のエラーが表示されます。

java.io.IOException: Class listed in @type [com.myapp.constructors.GeoConstructor] is not found, pos = 43

マップフラグメントを開いて閉じるまで、アプリは正常に動作します。maps.MapFragment の呼び出しを他のアクティビティ/フラグメントに挿入すると、奇妙なエラーも発生します!

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.SupportMapFragment"/>

したがって、エラーは Fragment の呼び出しである必要があります。また、MapFragment をプログラムで膨らませてみました。

mMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentByTag(MAP_FRAGMENT_TAG);

if (mMapFragment == null) {
        mMapFragment = SupportMapFragment.newInstance();

        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(android.R.id.content, mMapFragment, MAP_FRAGMENT_TAG);
        fragmentTransaction.commit();
    }

しかし、これはエラーを解決しません。

おそらく、Google の MapFragment / SupportMapFragment を使用すると、アプリ内の何かが操作されます。この動作の原因は何ですか?

あなたが私を助けてくれることを願っています。

とった:

マップを膨らませた後に ClassLoader が変更されたようです。理由はわかりませんが、手動で呼び出した後

Thread.currentThread().setContextClassLoader(BaseActivity.cLoader);

マップ フラグメントを閉じると、エラーが消えます。それが役に立てば幸い :)

4

0 に答える 0