2017-01-10 7 views
0

私はvolleyを使用して配列リストを取得しようとしていますが、スピナーに表示していますが、アプリがクラッシュします。 ここでアプリアンドロイドスピナーがjsonクラッシュを読み込む

package com.example.shivadeeps.webservice; 

import android.content.Context; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Config; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.ImageLoader; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import org.json.JSONObject; 

import java.util.ArrayList; 
import static java.lang.Character.getName; 

public class MainActivity extends AppCompatActivity { 
private Spinner spinner; 
private ArrayList<String> trips; 
private JSONArray result; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    trips= new ArrayList<String>(); 
    this.spinner = (Spinner) findViewById(R.id.spinner); 
    spinner.setOnItemSelectedListener((AdapterView.OnItemSelectedListener) this); 
    loadtrip(); 
} 
public void loadtrip() { 
    StringRequest stringRequest = new StringRequest(config.DATA_URL, 
      new Response.Listener<String>() { 
       public void onResponse(String response) { 
        JSONObject j = null; 
        try { 
         j = new JSONObject(response); 
         result = j.getJSONArray(config.JSON_ARRAY); 
         getStudents(result); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
       } 
      }); 
    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(stringRequest); 
} 
private void getStudents(JSONArray j){ 
    for(int i=0;i<j.length();i++){ 
     try { 
      JSONObject json = j.getJSONObject(i); 
      trips.add(json.getString(config.DATA_URL)); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

    //Setting adapter to show the items in the spinner 
    spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,trips)); 
} 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    String item = parent.getItemAtPosition(position).toString(); 
    Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); 
} 
public void onNothingSelected(AdapterView<?> parent) { 


} 


} 

XMLコードの主な活動である:29:25.226 12404から12404/COM

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/red" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.shivadeeps.webservice.MainActivity"> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="23" /> 

<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="80dp" 

    android:layout_marginTop="100dp" ></Spinner> 
<TextView 
    android:id="@+id/text_id" 
    android:layout_width="300dp" 
    android:layout_height="200dp" 
    android:textColor="@android:color/holo_blue_dark" 
    android:textColorHighlight="@android:color/primary_text_dark" 
    android:layout_centerVertical="true" 
    android:textSize="50dp"/> 
    </RelativeLayout> 

ここではlogcat

01-10 11です。 example.shivadeeps.webservice
E/AndroidRuntime:致命的除外:メイン プロセス:com.example.shivadeeps.webservice、PID:12404 java.lang.RuntimeException:アクティビティを開始できません。 ComponentInfo {com.example.shivadeeps.webservice/com.example.shivadeeps.webservice.MainActivity}: android.view.InflateException:バイナリXMLファイルの行番号13:エラー inflatableクラスは使用許可 を でandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:3190) は android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300) でandroid.app.ActivityThread.access $ 1000(ActivityThread .java:211) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1705)android.os.Handler.dispatchMessage(Handler.java:102)の android.os.Looper.loop(Looper.java:145) android.app.ActivityThread.main(ActivityThread.java:6946) at java.lang.reflect.Method.invoke(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit。 java:1404) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 原因:android.view.InflateException:バイナリXMLファイルの行番号13: エラーinflating class uses-permission 012 android.view.LayoutInflater.inflate(LayoutInflater.java:511)でandroid.view.LayoutInflater.rInflate(LayoutInflater.java:813) でandroid.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) でandroid.view.LayoutInflater.inflate(LayoutInflater.java:415) android.support.v7.app.AppCompatDelegateImplV9.setContentViewでandroid.view.LayoutInflater.inflate(LayoutInflater.java:366) (AppCompatDelegateImplV9.javaで で: (AppCompatActivity.java:143)android.app.Activity.performCreateで でcom.example.shivadeeps.webservice.MainActivity.onCreate(MainActivity.java:40) (Activity.java:6575) android.app.Instrumentation.callActivityOnCreate(計器で。 Javaの:1134) でandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143) android.app.ActivityThread.handleLaunchActivity(ActivityThreadで 。Javaの:3300) android.os.Handler.dispatchMessageでandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1705) (でandroid.app.ActivityThread.access $ 1000(ActivityThread.java:211) で java.lang.reflect.Method.invokeでandroid.app.ActivityThread.mainでandroid.os.Looper.loop(Looper.java:145) (ActivityThread.java:6946) (AT Handler.java:102) ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.jav a:1404) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 原因:java.lang.ClassNotFoundException:クラスが見つかりませんでした "android.view.uses-permission" onパス:DexPathList ["/data/app/com.example.shivadeeps.webservice-2/base.apk"],nativeLibraryDirectories=[/vendor/lib、 /system/lib]] at dalvik。 (ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) android.view.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) LayoutInflater.createView(Layout android.viewでandroid.view.LayoutInflater.onCreateViewでInflater.java:578) com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65で(LayoutInflater.java:672) ) android.viewで.LayoutInflater.onCreateView android.view.LayoutInflater.rInflateで(LayoutInflater.java:689) でandroid.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748) (LayoutInflater.java:813) 。 LayoutInflater.inflate(LayoutInflater.java:511) android.view.LayoutInflater.inflate(LayoutInflater.java:415)android.view.LayoutInflater.inflate(LayoutInflater.java:366) でandroid.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) android.support.v7.app.AppCompatActivityでは0。 setContentView アンドロイドでcom.example.shivadeeps.webservice.MainActivity.onCreate(MainActivity.java:40)android.app.Activity.performCreate(Activity.java:6575)で で(AppCompatActivity.java:143) 。 app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) at android.a pp.ActivityThread.performLaunchActivity(ActivityThread.java:3143) でandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3300) アンドロイドでandroid.app.ActivityThread.access $ 1000(ActivityThread.java:211) で.app.ActivityThread $ H.handleMessage(ActivityThread.java:1705)android.os.Handler.dispatchMessage(Handler.java:102)の にandroid.os.Looper.loop(Looper.java:145) でandroidしています。 .app.ActivityThread.main(ActivityThread.java:6946) at java.lang.reflect.Method.invoke(ネイティブメソッド) java.lang.reflectにあります。com.android.internal.os.ZygoteInit.mainで com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1404) (ZygoteInit.javaでMethod.invoke(Method.java:372) :1199) 抑制:java.lang.ClassNotFoundExceptionが:クラスが見つかりませんでした "android.view.uses許可" パス上:DexPathList [[DEXファイル 「/data/data/com.example.shivadeeps.webservice/ファイル/インスタント・ラン/ DEX /スライスサポート-注釈-25.0.1_485a49a20ae18735d596aaa75d964eacffc01e9a-classes.dex " DEXファイル " /data/data/com.example.shivadeeps.webservice/files/instant-run/dex/slice -slice_9-classes.dex " DEXファイル " /data/data/com.example.shivadee ps.webservice /ファイル/インスタント・ラン/ DEX /スライスslice_8-classes.dex " DEXファイル " /data/data/com.example.shivadeeps.webservice/files/instant-run/dex/slice-slice_7 -classes.dex " DEXファイル "/data/data/com.example.shivadeeps.webservice/files/instant-run/dex/slice-slice_6-classes.dex"、 DEXファイル " /データ/データ/com.example.shivadeeps.webservice/files/instant-run/dex/slice-slice_5-classes.dex " DEXファイル " /data/data/com.example.shivadeeps.webservice/files/instant-run/ dex/slice-slice_4-classes.dex "、 デックスファイル " /data/data/com.example.shivadeeps.webservice/files/instant-run/dex/slice-slice_3-classes.dex "、 デックスファイル "/data/data/com.ex ample.shivadeeps.webservice /ファイル/インスタント・ラン/ DEX /スライスslice_2-classes.dex " DEXファイル " /data/data/com.example.shivadeeps.webservice/files/instant-run/dex/slice -slice_1-classes.dex "、 dexファイル" /data/data/com.exa 01-10 11:29:25.231 2827-3392 /? W/ActivityManager:フォース仕上げアクティビティ1 com.example.shivadeeps.webservice/.MainActivity 01-10 11:29:25.241 2827から3392 /? D/InputDispatcher:フォーカスされたアプリケーションを次のように設定します。xxxx 01-10 11:29:25.311 12691-12691 /? D/Mms/MmsApp:[start] initCountryIso 消費時間= 103.6345 01-10 11:29:25.316 2827-3621 /? D/CountryDetector:最初のリスナーが追加されます。01-10 11:29:25.321 12691-12691 /? D/Mms/MmsApp:[end] initCountry消費時間= 9.456961 01-10 11:29:25.416 2156-11978 /? I/display:BWチェックによる[PrimaryDisplay] [DYNAMIC_RECOMP] GLES_2_HWC 01-10 11:29:25.436 11562-11587 /? I /アイシング:インデックス 7491238841BD1692167B469A759AF4A2F8E28FA8 com.google.android.googlequicksearchbox 01から10 11:29:25.486 2827から3114 /? E /ウォッチドッグ:!@Sync 5200 [01-10 11:29:25.488] 01-10 11:29:25.531 12691から12691 /? D/MMS/MmsConfig:[開始] MmsConfig.init()消費 時間= 210.034154 01-10 11:29:25.546 2827から3392 /? I /ウィンドウマネージャ: スクリーンmaxはトークン{1ad8e437 ActivityRecord {3b472d36 U0 com.example.shivadeeps.webservice/.MainActivity T440のF}} appWin =ウィンドウ{2e5a232f U0 D0 com.example.shivadeeps.webservice開始}の4を再試行drawState = 4 01-10 11:29:25.551 12691-12691 /? D/EasySignUpManager_1.15.0305:isAuth is false 01-10 11:29:25.551 2827-12720 /? E/android.os.Debug:ro.product_ship = true 01-10 11:29:25.551 2827-12720 /? E/android.os.Debug:ro.debug_level = 0x4f4c 01-10 11:29:25.556 12691-12691 /? D/MMS/MmsConfig:偽 getEasySignUpStatus sIsAuthEasySignUp =は、 TelephonyUtils.getSimState(0)= 1 01-10 11:29:25.556 2827から2852 /? D/PhoneWindow:FMB installDecor mIsFloating:真01-10 11:29:25.556 2827年から2852年/? D/PhoneWindow:FMB installDecorフラグ: 8519682 01-10 11:29:25.556 12691から12691 /? D/EasySignUpManager_1.15.0305:serviceId:1、機能:-1 01-10 11:29:25.556 12691-12691 /? D/EasySignUpManager_1.15.0305:isAuthは false 01-10 11:29:25.556 12691-12691 /? D/EasySignUpManager_1.15.0305: getServiceStatus:serviceId(1)がオフ01-10 11:29:25.556 12691-12691 /? D/Mms/MmsConfig:setFreeMessageEnabled、 getSupportedFeatures = -1 sIsAuthEasySignUp = false sIsFreeMessageServiceStatus = false 01-10 11:29:25.556 12691-12691 /? D/Mms/MmsConfig:負荷のリサイズ品質:80 01-10 11:29:25.561 12691-12691 /? E/CscParser:mps_code.datは存在しません。01-10 11:29:25.566 12691-12691 /? E/CscParser:customer_path =/system/csc/customer.xml 01-10 11:29:25.566 12691-12691 /? E/CscParser: "この" としてfileNameに+ /system/csc/customer.xml

+0

XMLコードに誤りがあります。ここに投稿してください –

+0

問題は 'XMLファイル 'にあります –

+0

その許可フォームxmlを削除し、マニフェストに追加します。 – MLN

答えて

0

チェックあなたのコードでこの行spinner.setOnItemSelectedListener((AdapterView.OnItemSelectedListener) this);

あなたの設定クリックリスナーが、あなたの活動は 「AdapterViewを実装していませんでした。 OnItemSelectedListener」

あなたの活動はAdapterView.OnItemSelectedListener

+0

spinner.setOnItemSelectedListener(this);私にエラーが発生します – phoenixshiv

+0

Jagjitが述べたように、インフレの例外はマニフェストの「インターネット許可なし」に起因します。また、アクティビティが "AdapterView.OnItemSelectedListener"を実装するまで、spinner.setOnItemSelectedListener(this);エラーが発生します。 – Praveen

+0

権限を追加した後、あなたのアクティビティをパブリッククラスMainActivityに変更します。AppCompatActivityはAdapterView.OnItemSelectedListenerを実装し、必要なメソッドを追加します。 – Praveen

0

を実装する必要があります申し訳ありませんが、私が原因評判にコメントすることはできませんが、activity_main.xmlファイルのソースであなたの質問を更新してください可能性があります。おそらく13行目にエラーがあります。共有してください。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="23" /> 

これらの行がない任意のlayourファイルでのみのAndroidManifest.xmlに挿入されなければならないあなたのxml からこれらの行を削除してください。

+0

私はそれを削除しました – phoenixshiv

+0

スピナーがデータをロードしません – phoenixshiv

+0

AndroidManifest.xmlでそのインターネットアクセス許可を追加しましたか?あなたはgetStudents()を呼び出すことによって、onResponse()メソッドでVolleyの応答の後にのみアイテムをロードしています。 AndroidManifest.xmlファイルを確認してください。 –

1

XML

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="23" /> 

からこれを削除し、ファイルをマニフェストにそれらを追加してください。これはあなたの問題を解決します。 許可は、XMLファイルではなくマニフェストファイルに常に追加されます。

+0

は動作しませんでした – phoenixshiv

+0

@phoenixshiv logcat –

+0

を投稿してください投稿しました – phoenixshiv

関連する問題