質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

2回答

5558閲覧

android エラー NoSuchFieldExceptionの解除法

ttt1212

総合スコア16

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2015/11/12 08:54

下記のエラーが全く消えません。
エラー文に書いてあるfacebookとはなんでしょう。
android開発でfacebookとの連携は一切行っておりません。

プログラム内容としては以下です。
・ナビゲーションドロワーのクリックイベントに
インテントを使用して別クラスに移動し、画面表示をする

下記にエラー文とプログラムコードを示します。
エラーの原因と対処法を教えていただけると嬉しいです。
よろしくおねがいします。

<エラー文>

art: Thread[1,tid=26236,Native,Thread*=0xb4db6a00,peer=0x747da2a0,"main"] recursive attempt to load library "/data/app/com.facebook.katana-1/lib/arm/libfbjni.so" ? E/MemoryReductionHack: Couldn't update the Loader /? E/MemoryReductionHack: java.lang.NoSuchFieldException: No field file in class Ldalvik/system/DexPathList$Element; (declaration of 'dalvik.system.DexPathList$Element' appears in /system/framework/core-libart.jar) /? E/MemoryReductionHack: at java.lang.Class.getDeclaredField(Native Method) /? E/MemoryReductionHack: at com.facebook.common.dextricks.MemoryReductionHack.a(MemoryReductionHack.java:136)

行っているプログラムコードは以下です。

<mainActivity> ``` private AdapterView.OnItemClickListener mOnItemClickListener = new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { String imageName; Intent intent = new Intent(MainActivity.this, ImageActivity.class); switch (position) { case 0: Log.i("----", "images"); imageName = "food"; intent.putExtra("images", imageName); startActivity(intent); break; } mDrawerLayout.closeDrawer(mDrawerList);
<SubActivity>
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image); Intent intent = getIntent(); imageNames = intent.getStringExtra("images"); Log.i("---!!!!",imageNames);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

・上のコードでmainActivity(最初のmが小文字)に対してIntent引数ではMainActivity(大文字)になっている
・下のコードでSubActivityになっているのにIntent引数ではImageActivity
これは問題ないのでしょうか?

投稿2015/11/12 09:58

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttt1212

2015/11/12 10:01

すみません、これはteratailへの私の記入ミスです。。 コードは問題なさそうです。。。。
guest

0

ベストアンサー

見た目では動きそうな気がしますね。
SubActivity の intent.getStringExtra を tyr~catch で囲って NoSuchFieldException の例外を捉えれば落ちることはなくなるかと。その例外の詳細を見れば何かわかるかもしれません。

投稿2015/11/12 09:32

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttt1212

2015/11/12 09:54

落ちてはなく、インテントが渡らず画面が変わらない状態です。 onItemClickメソッドは実行されているようなのですが・・・。 ログにCouldn't update the Loader 左の記述もあります。
PineMatsu

2015/11/12 10:11

onCreateでgetするのではなくonStartでgetしてみたらどうでしょうか? (単にそういうサンプルを見た事があるだけなのでなんとも言えないですが^^;)
ttt1212

2015/11/12 10:19

onStartでも表示されませんでした。 ちなみにもう一つこんなエラーがでておりました。 E/ActivityThread: Performing stop of activity that is not resumed: {com.android.chrome/org.chromium.chrome.browser.document.DocumentActivity} ? E/ActivityThread: java.lang.RuntimeException: Performing stop of activity that is not resumed:
ttt1212

2015/11/12 23:17

Libsフォルダに入れていたライブラリファイルを削除したら動きました。 これは、どういう現象だったのでしょうか(> <)
PineMatsu

2015/11/13 04:15

その辺りの仕組みはそれほど詳しくはないのですが、build.gradleのdependenciesで指定したcompile指定とlibsに入れたライブラリファイルのバージョンが食い違っていたとかじゃないでしょうか?ネット環境にあるのなら、dependenciesで指定するだけでダウンロードしてくれるはずです。 とにかく動いて良かったですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問