Autore Topic: Cambiare minSdkVersion  (Letto 867 volte)

Offline ilmagowalter

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Cambiare minSdkVersion
« il: 18 Febbraio 2016, 18:44:45 CET »
0
ciao, non so se è la sezione giusta..spero di non sbagliare
ho fatto un'applicazioncina che al momento fa quello che mi serve
stavo pensando di nascondere la actionbar, perchè visualizzo dei video e li voglio a schermo intero senza altre cose visibili

cercando ho trovato il theme
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
ma appena lo inserisco nel manifest, subito mi compare l'errore che il minsdkversione deve essere almeno 11
così lo cambio ma l'applicazione non parte più...faccio un pò di debug e trovo uno dei punti in cui va in errore
Codice: [Seleziona]
        Log.i("SetParametri", "INIZIO - Imposto tutti i parametri letti sul database sul file config.properties");
        String result = null;
        try {
            System.out.println("prima url");
                URL url = new URL(link_parametri);
            System.out.println("prima HttpURLConnection");
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            System.out.println("prima BufferedReader");
            BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
            System.out.println("prima StringBuilder");
            StringBuilder sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line="0";         
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }             
            result=sb.toString();
            Properties config = new Properties();
            OutputStream output = new FileOutputStream(path+"config.properties");
            try{
                    JSONArray jArray = new JSONArray(result);
                    JSONObject json_data=null;
                    for(int i=0;i<jArray.length();i++){
                            json_data = jArray.getJSONObject(i);
                            config.setProperty(json_data.getString("NOME_PAR"), json_data.getString("VALORE_PAR"));
                    }         
            }catch(JSONException e1){
                    Log.e("SetParametri", "JSONException");
            }catch (ParseException e1){
                    Log.e("SetParametri", "ParseException");
                e1.printStackTrace();
            }
            config.store(output, null);
                    Log.i("SetParametri", "FINE - Imposto tutti i parametri letti sul database sul file config.properties");
                link_listavideo = config.getProperty("link_listavideo");
                path_video = Environment.getExternalStorageDirectory()+config.getProperty("path_video");
                esito = checkCreaCartella(path_video);
                path_video_dummy = Environment.getExternalStorageDirectory()+config.getProperty("path_video_dummy");
                esito = checkCreaCartella(path_video_dummy);
                nome_video_dummy = config.getProperty("nome_video_dummy");
            ftp_server = config.getProperty("ftp_server");
            ftp_port = Integer.parseInt(config.getProperty("ftp_port"));
            ftp_user = config.getProperty("ftp_user");
            ftp_pass = config.getProperty("ftp_pw");
        } catch (Exception e) {
                Log.e("SetParametri", "Exception: "+ e.getMessage());
        }
il logcat da
Codice: [Seleziona]
02-18 18:30:15.013: I/SetParametri(27651): INIZIO - Imposto tutti i parametri letti sul database sul file config.properties
02-18 18:30:15.013: I/System.out(27651): prima url
02-18 18:30:15.013: I/System.out(27651): prima HttpURLConnection
02-18 18:30:15.013: I/System.out(27651): prima BufferedReader
02-18 18:30:15.023: E/SetParametri(27651): Exception: null
sembrerebbe quindi che a partire dall'istruzione
Codice: [Seleziona]
            BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
vada in errore...purtroppo però il getmessage() dell'errore restituisce null

qualche idea ? ammetto di non aver molto chiaro il discorso dei livelli di api...credo siano relativi alle varie versioni di android

nelle proprietà del progetto il "project build target" selezionato è "google's APIS" platform 6, api level 23

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Cambiare minSdkVersion
« Risposta #1 il: 18 Febbraio 2016, 18:48:55 CET »
0
Toolbar e chiamate web sono cose separate.
A occhio dovresti avere quel errore anche senza il discorso di min sdk

Offline ilmagowalter

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Re:Cambiare minSdkVersion
« Risposta #2 il: 18 Febbraio 2016, 19:10:17 CET »
0
con il minSdkVersion=8
non ho alcun errore e l'applicazione funziona

Offline ilmagowalter

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Re:Cambiare minSdkVersion
« Risposta #3 il: 23 Febbraio 2016, 09:03:45 CET »
0
Nessuna idea ?

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Cambiare minSdkVersion
« Risposta #4 il: 26 Febbraio 2016, 00:47:53 CET »
0
cercando ho trovato il theme
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
ma appena lo inserisco nel manifest, subito mi compare l'errore che il minsdkversione deve essere almeno 11

Lo style Holo richiede un minSdk>=11. Il warning ti avvisa che il tuo minSdk probabilmente è superiore.
A prescindere da questo, utilizzare un tema Holo oggi è decisamente una scelta azzardata.
Ti consiglio di leggere qualcosa su AppCompat.

        } catch (Exception e) {
                Log.e("SetParametri", "Exception: "+ e.getMessage());
        }

Prova a debbugare il codice per vedere su quale riga effettivamente va in errore l'app.
Inoltre metti sempre uno stacktrace nella gestioni delle eccezioni proprio per avere maggiori info in caso di errore.
« Ultima modifica: 26 Febbraio 2016, 00:50:51 CET da GabMarioPower »

Offline ilmagowalter

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Re:Cambiare minSdkVersion
« Risposta #5 il: 26 Febbraio 2016, 09:35:38 CET »
0
ok, grazie

sto ristrutturando un pò l'app...e vi farò sapere

sono un principiante di android e sto cercando di studiare :)

Post unito: [time]26 Febbraio 2016, 12:17:01 CET[/time]
Allora, l'eccezione è

Codice: [Seleziona]
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err: android.os.NetworkOnMainThreadException
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:112)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at java.net.Socket.connect(Socket.java:842)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76)
02-26 12:13:10.036 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:341)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at it.ecopm.videospot.VideoLoopActivity.setParametriApp(VideoLoopActivity.java:91)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at it.ecopm.videospot.VideoLoopActivity.onCreate(VideoLoopActivity.java:61)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.Activity.performCreate(Activity.java:5008)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.os.Looper.loop(Looper.java:137)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:4745)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at java.lang.reflect.Method.invoke(Method.java:511)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-26 12:13:10.046 25831-25831/it.ecopm.videospot W/System.err:     at dalvik.system.NativeStart.main(Native Method)

ho trovato questo link http://www.lucazanini.eu/it/2012/android/the-android-os-networkonmainthreadexception-exception/
che dice che si può risolvere aggiungendo questo codice
ed effettivamente non mi va più in errore e l'applicazione continua...
però non capisco se questa soluzione può avere altre conseguenze...
in più in quella pagina si parla anche della classe Asyntask...

che cosa mi consigliate ?
« Ultima modifica: 26 Febbraio 2016, 12:17:25 CET da ilmagowalter »