75

コードを投稿して、なぜそれが機能しないのかを尋ねるのは嫌いですが、今は途方に暮れています。以下のクラスを実行しようとしましたが、logcatで説明できない例外が発生します。グーグル検索でさえほとんど結果をもたらさない。たぶん私は生態系を理解していませんが、例外にはほとんど情報がありません。私が得ている例外は以下のとおりです。

03-06 21:50:43.031: E/AndroidRuntime(1013): FATAL EXCEPTION: main
03-06 21:50:43.031: E/AndroidRuntime(1013): android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.content.res.Resources.getResourceName(Resources.java:1659)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1012)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.view.ViewPager.populate(ViewPager.java:881)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1366)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.View.measure(View.java:15513)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.Choreographer.doCallbacks(Choreographer.java:562)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.Choreographer.doFrame(Choreographer.java:532)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.os.Handler.handleCallback(Handler.java:725)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.os.Handler.dispatchMessage(Handler.java:92)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.os.Looper.loop(Looper.java:137)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at android.app.ActivityThread.main(ActivityThread.java:5039)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at java.lang.reflect.Method.invokeNative(Native Method)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at java.lang.reflect.Method.invoke(Method.java:511)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-06 21:50:43.031: E/AndroidRuntime(1013):     at dalvik.system.NativeStart.main(Native Method)
03-06 21:55:44.231: E/Trace(1033): error opening trace file: No such file or directory (2)

ViewPagerをトップレベルのコンテンツ(つまり、setContent(pager))に移動しようとしましたが、うまくいかなかったようです。どんな入力でも歓迎します。コードは以下のとおりです。

編集*例を簡略化しても、同じ問題が発生します。

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;

public class AskQuestionActivity extends FragmentActivity
{
    private static LayoutParams MATCH_PARENT = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT );

    @Override
    protected void onCreate( Bundle savedInstanceState )
    {
        super.onCreate( savedInstanceState );

        ViewPager pager = new ViewPager( this );
        pager.setAdapter( new FragmentPagerAdapter( getSupportFragmentManager() )
        {
            @Override
            public int getCount()
            {
                return 1;
            }

            @Override
            public Fragment getItem( int arg0 )
            {
                return new BoardFragment();
            }
        } );

        setContentView( pager );
    }

    public static class BoardFragment extends Fragment
    {
        @Override
        public View onCreateView( LayoutInflater inflater,
                                  ViewGroup container,
                                  Bundle savedInstanceState )
        {
            TextView textView = new TextView( getActivity() );
            textView.setText( "Board" );
            textView.setGravity( Gravity.CENTER );

            LinearLayout layout = new LinearLayout( getActivity() );
            layout.setLayoutParams( MATCH_PARENT );
            layout.addView( textView );

            return layout;
        }
    }
}

どんな助けでも歓迎します。

4

10 に答える 10

86

だから私は私の問題の解決策だと思うものを投稿します。上記のコードに1行追加した後ViewPager、「ランダム」IDを指定します。それは私の問題をなんとか解決しました。

最初は、自分のIDを設定するのは悪い習慣だと確信していましたが、これを行うには明らかに正当な方法があります。つまり、ids.xmlファイルを作成し、AndroidエコシステムにIDを生成させることによって。詳細については、これらのSO投稿を確認することをお勧めします-ここここ

ViewPagerそれ以外の場合は、 (プログラムでインスタンス化するのではなく)レイアウト用のXMLファイルを作成して取得することをお勧めしますActivityが、最終的には、何を達成しようとしているかによって異なります。

于 2013-03-07T15:09:41.927 に答える
22
ViewPager pager = new ViewPager(this);

リソースIDを設定する必要があります

pager.setId(0x1000);
于 2013-07-17T07:58:48.593 に答える
1

レイアウトフォルダの下にあるXMLレイアウトファイルでも同様の問題が発生していました。コードは以前はEclipseで機能していましたが、プロジェクトをAndroid Studioに移動すると、android.content.res.Resources$NotFoundExceptionが発生し続けました。

問題を修正するために、問題の原因であり、問​​題を解決したXMLファイルの名前を変更することになりました。その前に、プロジェクトを再構築してXMLファイルに変更を加えようとしましたが、どれも機能しませんでした。

于 2013-09-10T11:29:27.303 に答える
1

まったく同じ問題。プログラムでフラグメント内のビューページャーを生成しました。フラグメントがフォアグラウンドに戻ると、クラッシュしました。

ビューページャーのランダムIDを既に生成しましたが、それでもクラッシュします。唯一の方法は、固定IDを割り当てることです。変!

于 2015-11-25T01:01:00.960 に答える
1

2021年に、この問題は、完全に機能していたAppShellを使用してXamarinフォームで発生しましたが、多くのGoogle AndroidX Nugetパッケージの最後のバージョンにアップグレードした後、メニューを開いて別のメニューに変更すると、この投稿のメッセージエラーでクラッシュし始めましたページ。私の場合の解決策:すべてのライブラリを1つずつ以前のバージョンにダウングレードしましたが、原因はXamarin.AndroidX.Legacy.Support.V4のようです。v1.0.0.6は、私にとって問題なく動作した最後のものでした。理由はわかりません。

于 2021-06-04T04:32:01.490 に答える
0

同じエラーが発生しました。私の原因は、Adapterクラスに一致するimageViewがない余分なtextViewが1つあることが原因でした。私は7つのTextViewと6つのImageViewしか持っていませんでした。単純な間違いを理解するのに数時間かかりました。

于 2014-02-06T18:09:12.490 に答える
0

私も同じ問題を抱えていました。問題は、レイアウトファイルが見つからないことでした。レイアウトをlayout-xlargeフォルダーに配置しましたが、layoutフォルダーには配置しませんでした。そのため、小さな画面のタブレットにはその問題がありました。これは何人かの人々に手がかりを与えるかもしれません。

于 2015-07-21T06:14:57.257 に答える
0

viewPager.setAdapter(adapter);アダプターを設定すると、AndroidKitKat4.4でのみ同じ例外が発生します。私はほとんどすべての解決策を試しましたが、うまくいきませんでした。

私の場合、解決策は、.xmlファイルdrawable-nodpidrawableフォルダー(一部のSVGイメージ)に移動しBuild -> Clean Projectた後、エラーが発生しなくなったことです。

于 2017-07-20T06:28:31.370 に答える
0

直接Int値を設定しようとしていました。TextView

Stringに設定する前に値をに変換することで解決しましたTextView

于 2020-05-04T07:29:25.010 に答える
0

これは古い質問ですが、私が見つけた解決策は、同様の問題を抱えている人を助けることができるかもしれません...

私が受け取ったエラーメッセージは、不可解な「Android.Content.Res.Resources + NotFoundException:」リソースID#0x0が見つかりません-「リソースID」のみが元の質問と異なります。

多くの調査の結果、クラッシュはPushModalAsync()の呼び出しに関係していることがわかりましたが、理由はわかりませんでした...

私にとってこの問題を最終的に解決した解決策は、styles.xmlファイルにあります。android:windowBackgroundに#00ffffffの値を割り当てました。の16進色は、<item name="android:windowBackground">#000000</item>この例外をスローすることがわかります。

解決策は、colors.xmlファイルで16進色を割り当ててから、次のようなstyles.xmlでこの色を参照することです。<item name="android:windowBackground">@color/window_background</item>

これは、私を正しい方向に導いた「バグ」レポートです... android:windowBackgroundがHEXとして設定されている場合、PushModalAsync()で例外がスローされます

于 2021-12-30T05:47:31.227 に答える