Diskuze: Aplikace pro android padá

Ostatní jazyky Ostatní programovací jazyky Aplikace pro android padá

Aktivity (1)
Avatar
Vítězslav Škrabal:16. července 18:09
package com.example.stream;

import java.io.FileOutputStream;
import java.net.URL;
import java.io.InputStream;
import java.io.IOException;

import android.media.MediaRecorder;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends ActionBarActivity {
   private static final String LOG_TAG = null;
   InputStream inputStream;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      MediaRecorder mRecorder= new MediaRecorder();
      mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
      mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);


       try {
      URL url = new URL("http://icecast2.play.cz/croregion128.mp3");
        inputStream = url.openStream();
        Log.d(LOG_TAG, "url.openStream()");

        FileOutputStream fileOutputStream = new FileOutputStream("radio.mp3");
        Log.d(LOG_TAG, "FileOutputStream: " + "eas");

        int c;

        while ((c = inputStream.read()) != -1) {

         //Log.d(LOG_TAG, "bytesRead=" + bytesRead);
            fileOutputStream.write(c);
        }
       }
   catch (IOException v){
      Log.d(LOG_TAG,"balal");
   }
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      int id = item.getItemId();
      if (id == R.id.action_settings) {
         return true;
      }
      return super.onOptionsItemSelected(item);
   }
}

když to spustím tak to padá ,já vím že poskytuji málo informací ale kdyby někoho něco napadlo tak bych byl rád díky za pomoc

 
Odpovědět 16. července 18:09
Avatar
mara
Člen
Avatar
mara:16. července 21:50

Ahoj,

v logu ti to vypíše chybu, která ti udává, co je špatně. Ten sem buď dej nebo to podle toho najdeš. Případně pokud bys potřeboval pomoct, tak PM.

Marek.

Editováno 16. července 21:51
Nahoru Odpovědět 16. července 21:50
Co na srdci, to na Facebooku
Avatar
Vítězslav Škrabal:17. července 11:25
07-17 11:11:50.581: W/Resources(2648): Preloaded drawable resource #0x1080093 (android:drawable/sym_def_app_icon) that varies with configuration!!
07-17 11:11:50.762: D/AndroidRuntime(2648): Shutting down VM
07-17 11:11:50.790: E/AndroidRuntime(2648): FATAL EXCEPTION: main
07-17 11:11:50.790: E/AndroidRuntime(2648): Process: com.example.stream, PID: 2648
07-17 11:11:50.790: E/AndroidRuntime(2648): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.stream/com.example.stream.MainActivity}: android.os.NetworkOnMainThreadException
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2317)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.ActivityThread.access$800(ActivityThread.java:143)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.os.Handler.dispatchMessage(Handler.java:102)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.os.Looper.loop(Looper.java:135)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.ActivityThread.main(ActivityThread.java:5070)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at java.lang.reflect.Method.invoke(Native Method)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at java.lang.reflect.Method.invoke(Method.java:372)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:836)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:631)
07-17 11:11:50.790: E/AndroidRuntime(2648): Caused by: android.os.NetworkOnMainThreadException
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at java.net.InetAddress.lookupHostByName(InetAddress.java:418)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at java.net.InetAddress.getAllByName(InetAddress.java:215)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:29)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:232)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:124)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:245)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:189)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:369)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:322)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:190)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at java.net.URL.openStream(URL.java:470)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at com.example.stream.MainActivity.onCreate(MainActivity.java:35)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.Activity.performCreate(Activity.java:5720)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1102)
07-17 11:11:50.790: E/AndroidRuntime(2648):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2208)
07-17 11:11:50.790: E/AndroidRuntime(2648):     ... 10 more
07-17 11:11:57.834: I/art(2648): Heap transition to ProcessStateJankImperceptible took 81.083962ms saved at least 119KB
07-17 11:12:02.452: I/Process(2648): Sending signal. PID: 2648 SIG: 9

a ještě tady dávám Stream Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.stream"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Tak tady je ten log předem díky za pomoc

 
Nahoru Odpovědět 17. července 11:25
Avatar
Odpovídá na Vítězslav Škrabal
Petr Štechmüller:17. července 11:36

Ahoj, zde je vyjímka, která by tě měla zajímat:

java.lang.Run­timeException: Unable to start activity ComponentInfo{com­.example.stre­am/com.example­.stream.MainAc­tivity}: android.os.Net­workOnMainThre­adException

Znamená to, že se snažíš přistupovat k souboru, který leží někde na internetu z hlavního vlákna aplikace. Pokud jsi četl nějaký tutoriály, ideálně oficiální ze stránek androidu, tak by jsi věděl, že pro přístup k takovýmto zdrojům, ke kterým může přístup trvat dlouhou dobu se musí řešit asynchroně. V tomto případě by bylo nejjednodušší řešení použít AsyncTask .

Nahoru Odpovědět  +2 17. července 11:36
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
mara
Člen
Avatar
Odpovídá na Vítězslav Škrabal
mara:17. července 11:56

Ahoj,

souhlasím s Petr Štechmüller . Možná bych akorát zvážil využití RX Javy.

M.

Nahoru Odpovědět 17. července 11:56
Co na srdci, to na Facebooku
Avatar
Vítězslav Škrabal:17. července 12:44

Tak pánové jak to upravit? já bych se v tom plácal a ke zdaru by to stejně nevedlo jak se znám :-) a za druhé jak nastavit cestu na externí sd kartu abych mohl uložit ten výsledný soubor na ni díky

 
Nahoru Odpovědět 17. července 12:44
Avatar
Odpovídá na Vítězslav Škrabal
Petr Štechmüller:17. července 14:07

Ahoj, výše máš odkaz na AsyncTask, pomocí kterého asynchroně stáhneš soubor.
Pro uložení souboru na externí kartu použij třeba tutoriál z této stránky.

Až budeš v koncích s vlastní implementací, tak napiš...

Nahoru Odpovědět 17. července 14:07
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
mara
Člen
Avatar
mara:17. července 20:26

Petr Štechmüller Pokud jsem se díval správně, tak to není soubor, ale je to online stream rádia.

Případně můžeš PM. Dám ti můj kontakt, kde můžeš směřovat dotazy.

Marek.

Nahoru Odpovědět 17. července 20:26
Co na srdci, to na Facebooku
Avatar
Vítězslav Škrabal:17. července 21:10

Ano to je online stream rádia a to asi mění situaci v tom odkazu který s mě dal?

Případně můžeš PM. Dám ti můj kontakt

????

 
Nahoru Odpovědět 17. července 21:10
Avatar
Vítězslav Škrabal:18. července 17:53

Ten problém teď na chvíli opustíme,teď řeším tuto věc, tento program mi na interní kartě ve složce PICTURES vytvoří další složku v mém případě nanuk.mp3 jak to udělat aby mě to vytvořilo na přidane SD kartě ??? velice díky za pomoc

 
Nahoru Odpovědět 18. července 17:53
Avatar
Vítězslav Škrabal:19. července 16:54

Ještě se nikdo nenašel :-@ ?

 
Nahoru Odpovědět 19. července 16:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.