6

मुझे त्रुटियों की अजीब सूची मिल रही है, कुछ प्रतीत होता है कि डिस्कनेक्ट हो गया है लेकिन मेरे पास यह बताने का कोई तरीका नहीं है क्योंकि मैं अपनी ऐप को डिबग करने के लिए भी लोड नहीं कर सकता। यह एक बहुत ही सरल ऐप है, एक रेडियो समूह में 3 रेडियो बटन और प्रत्येक एक खेलने के लिए एक अलग गीत ट्रिगर करेगा।एंड्रॉइड - ट्रेस फ़ाइल खोलने में त्रुटि: ऐसी कोई फ़ाइल या निर्देशिका

मैं अपना मैनिफेस्ट, मेरी गतिविधि फ़ाइल, और लेआउट पोस्ट करके शुरू करूंगा और फिर त्रुटि लॉग पोस्ट करूंगा।

मैनिफ़ेस्ट:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.cis298.lab2" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:label = "@string/app_name" 
      android:name = ".LayoutActivity"> 
      <intent-filter > 
       <action android:name = "android.intent.action.MAIN" /> 

       <category android:name = "android.intent.category.LAUNCHER" /> 

      </intent-filter> 
      ></activity> 
    </application> 

</manifest> 

LayoutActivity:

package com.cis298.lab2; 

import java.io.IOException; 

import com.cis298.lab2.R; 

import android.app.Activity; 
import android.os.Bundle; 
import android.media.MediaPlayer; 
import android.widget.RadioGroup; 

public class LayoutActivity extends Activity { 

    int song; 
    MediaPlayer mediaplayer = MediaPlayer.create(this, song); 

    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout); 
     try { 
      mediaplayer.prepare(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     RadioGroup radgrp = (RadioGroup) findViewById(R.id.radiogroup); 
     radgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 
       switch (checkedId){ 
       case R.id.dance: 
        song = R.raw.redalert; 
        mediaplayer.start(); 
        break; 
       case R.id.rap: 
        song = R.raw.cannedheat; 
        break; 
       case R.id.rock: 
        song = R.raw.movmou8105; 
        break;} 
      } 
     }); 
    } 
} 

लेआउट:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <RadioGroup 
     android:id="@+id/radiogroup" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:orientation="vertical" > 

     <RadioButton 
      android:id="@+id/rock" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Play Rock" /> 

     <RadioButton 
      android:id="@+id/rap" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Play Rap" 
      android:checked="true"/> 

     <RadioButton 
      android:id="@+id/dance" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Play Dance" 
      android:textAlignment="center" /> 

    </RadioGroup> 

</RelativeLayout> 

प्रवेश करें:

02-21 20: 34: 05.0 44: डी/एंड्रॉइड रनटाइम (322): वीएम को बंद करना 02-21 20: 34: 05.044: डब्ल्यू/दल्विकवम (322): थ्रेडिड = 1: के साथ बाहर निकलने वाला थ्रेड अपूर्ण अपवाद (समूह = 0x4001d800) 02-21 20:34 : ०५.०९४: ई/AndroidRuntime (322): गंभीर अपवाद: मुख्य 02-21 20: 34: ०५.०९४: ई/AndroidRuntime (322): java.lang.RuntimeException: इन्स्तांत गतिविधि ComponentInfo {com.cis298 करने में असमर्थ। lab2/com.cis298.lab2.LayoutActivity}: java.lang.NullPointerException 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2585) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): android.app.ActivityThread.handleLaunchActivity (ActivityThread.java) 679) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): atroid.app.ActivityThread.access $ 2300 (ActivityThread.java:125) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): android.os.Handler.dispatchMessage (हैंडलर। जावा: 99) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): android.os.Looper.loop (Looper.java:123) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): android.app.ActivityThread.main (ActivityThread.java:4627) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): java.lang.reflect.Method.invokeNative (मूल निवासी तरीका) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): पर java.lang.reflect.Method.invoke (method.java:5221) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): com.android.internal.os पर .ZygoteInit.main (ZygoteInit.java:626) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): dalvik.system.NativeStart.main (मूल विधि) 02-21 20: 34: 05.094: ई/AndroidRuntime (322): की वजह से: java.lang.NullPointerException 02-21 20: 34: ०५.०९४: ई/AndroidRuntime (322): android.content.ContextWrapper.getResources (ContextWrapper.java:80)पर 210 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): atroid.media.MediaPlayer.create (MediaPlayer.java:641) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): com.cis298.lab2.LayoutActivity पर। (लेआउट एक्टिविटी.जावा:15) 02-21 20:34:05।094: ई/एंड्रॉइड रनटाइम (322): java.lang.Class.newInstanceImpl (मूल विधि) 02-21 20: 34: 05.094: ई/एंड्रॉइड रनटाइम (322): पर java.lang.Class.newInstance (कक्षा .जावा: 1429) 02-21 20: 34: 05.0 9 4: ई/एंड्रॉइड रनटाइम (322): atroid.app.Instrumentation.newActivity (Instrumentation.java:1021) 02-21 20:ई/AndroidRuntime (322): android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2577) पर 02-21 20: 34: ०५.०९४: ई/AndroidRuntime (322): ... 11 और

कोई मदद की बहुत सराहना की जाएगी।

+0

आपने अपनी गतिविधि में कुछ प्रारंभ किया है। यह सब मैं इससे कह सकता हूँ! – smk

+1

LayoutActivity.java की पंक्ति 15 क्या है? –

+0

बीटीडब्ल्यू मैं एक करीबी गतिविधि टैग से पहले एक अतिरिक्त> था जो मैंने हटा दिया था और मुझे अभी भी एक ही त्रुटि मिल रही है। –

उत्तर

3

mediaplayer = MediaPlayer.create(this, song); को onCreate() के अंदर ले जाने का प्रयास करें।

चूंकि गतिविधि को onCreate() तक पूरी तरह से प्रारंभ नहीं किया गया है, यह एनपीई का कारण हो सकता है।

हालांकि, अगले समस्या यह है कि आप शुरू में गीत से किया जा रहा साथ MediaPlayer बनाने 0 (पूर्णांक 0 का डिफ़ॉल्ट मान है जब यह एक उदाहरण चर रहा है) है। इसलिए यदि MediaPlayer.create हल हो रहा है यह एनपीई हल करता है, तो अगली त्रुटि संसाधन खोजने में सक्षम नहीं होने के बारे में कुछ होगी। इसलिए, MediaPlayer.create पर कॉल करें song कुछ उपयोगी पर रखता है।

शायद ऐसा कुछ काम करेगा।

public class LayoutActivity extends Activity { 

    int song; 
    MediaPlayer mediaPlayer; 

    public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout); 

    RadioGroup radgrp = (RadioGroup) findViewById(R.id.radiogroup); 
    radgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
     switch (checkedId){ 
      case R.id.dance: 
      song = R.raw.redalert; 
      break; 
      case R.id.rap: 
      song = R.raw.cannedheat; 
      break; 
      case R.id.rock: 
      song = R.raw.movmou8105; 
      break; 
     } 


     mediaplayer = MediaPlayer.create(LayoutActivity.this, song); 
     try { 
      mediaplayer.prepare(); 
      mediaplayer.start(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     } 
    }); 
    } 
} 

और अगर गीत कहीं और नहीं किया जाता है, तो आप इसे onCheckedChanged() के दायरे में रख सकते हैं।

+0

यह मेरा मुद्दा था (इसे ऑनक्रेट विधि में ले जाना है)। साथ ही, मुझे हर बार एपीके अपलोड करने में 5+ मिनट लगते हैं। मैंने इसमें देखा और लोग 90 सेकंड की शिकायत कर रहे थे, इसलिए कुछ वास्तव में गलत होना चाहिए, कोई विचार? –

+1

हम सभी नए हैं, और आपका प्रश्न अच्छा और विस्तृत था :-) नए उपयोगकर्ताओं के साथ, मैं हमेशा उस मेटा प्रश्न से लिंक करता हूं अगर उन्होंने मेरा जवाब सही कहा क्योंकि सभी इस बात से परिचित नहीं हैं कि एसओ कैसे काम करता है। वैसे भी, आपका स्वागत है! –