L'App si avvia ma la finestra resta vuota

di il
8 risposte

L'App si avvia ma la finestra resta vuota

Buongiono.

Sono un giovane programmatore e mi sto avvicinando al mondo Android. Credo che per molti questa sia una banalità ma non riesco a venirne a capo. Ho creato un'applicazione per connettere Android a un PLC Siemens. Durante la compilazione della stessa, creata per mezzo di Android Studio, non viene generato nessun errore e infatti l'applicazione viene installata sul mio cellulare. Il problema è il seguente: L'App si apre senza segnalare errori ma non vedo nessuno degli oggetti programmati, cioè nessun pulsante, etichetta ecc... Cosa sbaglio ?

8 Risposte

  • Re: L'App si avvia ma la finestra resta vuota

    Prova a postare un pò di codice, sennò come si fa ad aiutarti??
  • Re: L'App si avvia ma la finestra resta vuota

    Certo!

    Questo è il layout dell'applicazione:

    layout.png
    layout.png


    Questo è il codice XML associato:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi"
    xmlns:app="http://schemas.android.com/apk/res-aut"
    xmlns:tools="http://schemas.android.com/tool"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp">

    <TextView
    android:id="@+id/textView10"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="217dp"
    android:layout_marginLeft="217dp"
    android:layout_marginTop="487dp"
    android:text="@string/val_db1_dbw0_w"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView11"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="218dp"
    android:layout_marginLeft="218dp"
    android:layout_marginTop="536dp"
    android:text="@string/val_db1_dbw2_w"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView"
    android:layout_width="194dp"
    android:layout_height="68dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginStart="111dp"
    android:layout_marginLeft="111dp"
    android:layout_marginTop="29dp"
    android:layout_marginEnd="73dp"
    android:layout_marginRight="73dp"
    android:text="@string/android_s7"
    android:textSize="36sp"
    android:textStyle="bold" />

    <TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="58dp"
    android:layout_marginLeft="58dp"
    android:layout_marginTop="152dp"
    android:text="@string/read_data"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="58dp"
    android:layout_marginLeft="58dp"
    android:layout_marginTop="431dp"
    android:text="@string/write_data"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="89dp"
    android:layout_marginLeft="89dp"
    android:layout_marginTop="208dp"
    android:text="@string/db1_dbw0"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView8"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="218dp"
    android:layout_marginLeft="218dp"
    android:layout_marginTop="258dp"
    android:text="@string/val_db1_dbw2_r"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="89dp"
    android:layout_marginLeft="89dp"
    android:layout_marginTop="487dp"
    android:text="@string/db1_dbw0"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="90dp"
    android:layout_marginLeft="90dp"
    android:layout_marginTop="257dp"
    android:text="@string/db1_dbw2"
    android:textSize="24sp" />

    <TextView
    android:id="@+id/textView7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="89dp"
    android:layout_marginLeft="89dp"
    android:layout_marginTop="535dp"
    android:text="@string/db1_dbw2"
    android:textSize="24sp" />

    <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="153dp"
    android:layout_marginLeft="153dp"
    android:layout_marginTop="604dp"
    android:onClick="writeAll"
    android:text="@string/write_all"
    android:textAllCaps="false"
    android:textSize="24sp"
    android:textStyle="italic" />

    <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="154dp"
    android:layout_marginLeft="154dp"
    android:layout_marginTop="330dp"
    android:onClick="readAll"
    android:text="@string/read_all"
    android:textAllCaps="false"
    android:textSize="24sp"
    android:textStyle="italic" />

    <TextView
    android:id="@+id/textView9"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="217dp"
    android:layout_marginLeft="217dp"
    android:layout_marginTop="209dp"
    android:text="@string/val_db1_dbw0_r"
    android:textSize="24sp" />

    </RelativeLayout>

    Questa è la classe principale:

    package com.example.client;

    import android.support.v7.app.AppCompatActivity;
    import android.annotation.SuppressLint;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
    import com.client.myapplication.client.R;
    import moka7.S7;
    import moka7.S7Client;

    public class MainActivity extends AppCompatActivity {

    protected void OnCreate(Bundle savedinstancestate) {
    super.onCreate(savedinstancestate);
    setContentView(R.layout.activity_main);
    }

    S7Client client = new S7Client();

    public void readAll(View v) {
    new PLC_Read().execute("");
    }

    public class PLC_Read extends AsyncTask<String, Void, String> {

    String data1 = "null";
    String data2 = "null";

    @Override
    protected String doInBackground(String... param) {

    try {
    client.SetConnectionType(S7.S7_BASIC);
    int check = client.ConnectTo("192.168.10.110", 0, 1);

    if (check == 0) {
    byte[] data = new byte[256];
    client.ReadArea(S7.S7AreaDB, 1, 0, 10, data);
    data1 = "" + S7.GetWordAt(data, 0);
    data1 = "" + S7.GetWordAt(data, 2);
    }
    else {

    }
    client.Disconnect();

    }
    catch(Exception e) {
    Thread.interrupted();
    }
    return "execute";
    }

    //@Override
    protected void OnPostExecute(String result){

    TextView textOut1=(TextView) findViewById(R.id.textView8);
    textOut1.setText(data1);

    TextView textOut2=(TextView) findViewById(R.id.textView9);
    textOut2.setText(data2);
    }

    }

    public void writeAll(View v) {
    new PLC_Write().execute("");
    }

    public class PLC_Write extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... param) {

    try {
    client.SetConnectionType(S7.S7_BASIC);
    int check = client.ConnectTo("192.168.10.110", 0, 1);

    if(check==0){

    @SuppressLint("WrongViewCast") EditText writeData1 = findViewById(R.id.textView10);
    String data1 = writeData1.getText().toString();

    @SuppressLint("WrongViewCast") EditText writeData2 = findViewById(R.id.textView11);
    String data2 = writeData2.getText().toString();

    byte[] data = new byte[256];

    S7.SetWordAt(data,0,Integer.parseInt(data1));
    S7.SetWordAt(data,2,Integer.parseInt(data2));

    client.WriteArea(S7.S7AreaDB,1,0,6,data);
    }
    else {

    }
    client.Disconnect();
    }
    catch(Exception e) {
    Thread.interrupted();
    }
    return "execute";
    }
    }
    }

    Spero sia utile.
  • Re: L'App si avvia ma la finestra resta vuota

    Dovresti mettere il codice tra i tag, sarebbe più leggibile.

    cmq, hai provato a vedere se in console ti arrivano i dati nell'OnPostExecute?
    prova anche a levare quei @SuppressLint("WrongViewCast"), magari ti dicono qualcosa che ti risolve il problema.

    sempre nell'OnPostExecute:
    
    //@Override
    protected void OnPostExecute(String result){
    
         TextView textOut1=(TextView) findViewById(R.id.textView8);
         textOut1.setText(data1);
    
         TextView textOut2=(TextView) findViewById(R.id.textView9);
         textOut2.setText(data2);
    }
    
    data1 e data2??
  • Re: L'App si avvia ma la finestra resta vuota

    Ho fatto qualche prova ma non ho risolto molto.

    Posto anche ciò che vedo dal Logcat... Potrebbe essere d'aiuto.
    La cosa strana e che Android Studio segnala degli errori nella classe Handler, ma questa è di sistema ! ?
    
    
    2020-03-27 17:25:09.889 1427-2459/? D/InputDispatcher: Focus entered window: Window{625c1bb u0 com.example.client/com.example.client.MainActivity}
    2020-03-27 17:25:09.895 29624-29650/com.example.client I/Adreno: QUALCOMM build                   : 14c0496, Ida6448821d
        Build Date                       : 01/08/18
        OpenGL ES Shader Compiler Version: EV031.22.00.01
        Local Branch                     : 
        Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.6.5.R1.08.00.00.312.043
        Remote Branch                    : NONE
        Reconstruct Branch               : NOTHING
    2020-03-27 17:25:09.896 29624-29650/com.example.client I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
    2020-03-27 17:25:09.904 1427-10287/? W/ActivityManager: Sending non-protected broadcast com.lge.systemui.notifyImmersiveModeType from system 2519:com.android.systemui/u0a151 pkg com.android.systemui
    2020-03-27 17:25:09.905 2519-2519/? D/StatusBar: setSystemUiVisibility vis=1e0a mask=ffffffff oldVal=608 newVal=1e0a diff=1802
    2020-03-27 17:25:09.909 29624-29650/com.example.client I/Adreno: PFP: 0x005ff087, ME: 0x005ff063
    2020-03-27 17:25:09.921 29624-29650/com.example.client I/OpenGLRenderer: Initialized EGL, version 1.4
    2020-03-27 17:25:09.922 29624-29650/com.example.client D/OpenGLRenderer: Swap behavior 2
    2020-03-27 17:25:09.930 1427-1593/? V/WallpaperManagerService: Wallpaper file change: evt=8 path=settings_secure.xml.backup sys=false lock=false imagePending=false whichPending=0x0 written=true
    2020-03-27 17:25:09.932 1427-1593/? V/WallpaperManagerService: Wallpaper file change: evt=128 path=settings_secure.xml.bak sys=false lock=false imagePending=false whichPending=0x0 written=true
    2020-03-27 17:25:09.964 29624-29650/com.example.client I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
    2020-03-27 17:25:09.996 29649-29649/? W/ADebug: Failed to get property persist.sys.media.traces
    2020-03-27 17:25:09.996 2504-11037/? D/ViewRootImpl: onChangedNavigationGuardColor(), color: ffe9ebee
    2020-03-27 17:25:09.996 2504-2504/? D/DecorView: updateNavigationGuardColor navigationGuardColor=0xffe9ebee
    2020-03-27 17:25:10.003 29624-29624/com.example.client I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@a3d3ea3 time:143261275
    2020-03-27 17:25:10.016 29649-29649/? D/AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 2000 <<<<<<
    2020-03-27 17:25:10.021 1427-1596/? I/ActivityManager: Displayed com.example.client/.MainActivity: +425ms
    2020-03-27 17:25:10.039 3933-3933/? I/[LGHome6]WallpaperMotionManager: WallpaperMotion is not running
    2020-03-27 17:25:10.039 3933-3933/? I/[LGHome6]EditModeOffManager: EditModeOffManager is not running
    2020-03-27 17:25:10.046 1427-2380/? D/InputDispatcher: Window went away: Window{5629fc0 u0 Splash Screen com.example.client}
    2020-03-27 17:25:10.140 1427-1593/? V/WallpaperManagerService: Wallpaper file change: evt=8 path=settings_secure.xml sys=false lock=false imagePending=false whichPending=0x0 written=true
    2020-03-27 17:25:10.141 1427-1593/? V/WallpaperManagerService: Wallpaper file change: evt=512 path=settings_secure.xml.bak sys=false lock=false imagePending=false whichPending=0x0 written=false
    2020-03-27 17:25:10.156 29649-29649/? D/AndroidRuntime: Calling main entry com.android.commands.pm.Pm
    2020-03-27 17:25:10.173 29649-29661/? W/MessageQueue: Handler (android.os.Handler) {9f6a36d} sending message to a Handler on a dead thread
        java.lang.IllegalStateException: Handler (android.os.Handler) {9f6a36d} sending message to a Handler on a dead thread
            at android.os.MessageQueue.enqueueMessage(MessageQueue.java:545)
            at android.os.Handler.enqueueMessage(Handler.java:661)
            at android.os.Handler.sendMessageAtTime(Handler.java:630)
            at android.os.Handler.sendMessageDelayed(Handler.java:600)
            at android.os.Handler.post(Handler.java:356)
            at android.os.ResultReceiver$MyResultReceiver.send(ResultReceiver.java:57)
            at com.android.internal.os.IResultReceiver$Stub.onTransact(IResultReceiver.java:58)
            at android.os.Binder.execTransact(Binder.java:690)
    2020-03-27 17:25:10.173 29649-29649/? I/app_process: System.exit called, status: 0
    2020-03-27 17:25:10.173 29649-29649/? I/AndroidRuntime: VM exiting with result code 0.
    2020-03-27 17:25:10.175 29649-29649/? I/DoViGenericTag: Logger Terminated
    
    
    Qui dentro ho trovato un'errore, cioè era ripetuto due volte "data1", ma questo credo sia inifluente rispetto al problema.
    
    
    protected void OnPostExecute(String result){
    
                TextView textOut1=(TextView) findViewById(R.id.textView8);
                textOut1.setText(data1);
                Log.d("CIAO","Ciao");
    
                TextView textOut2=(TextView) findViewById(R.id.textView9);
                textOut2.setText(data2);
                Log.d("CIAO","Ciao");
            }
            
    
  • Re: L'App si avvia ma la finestra resta vuota

    Dato il problema "insormotabile", ho provato a rifare tutto da capo e finalmente riesco a vedere tutti gli oggetti.

    Ora il problema è un'altro... In Android Studio ho inserito la libreria Moka7 per poter dialogare col PLC, come avevo già fatto precedentemente.
    Però, nonostante l'ho inserita nel progetto, non risco a importare le classi che contiene, come se la libreria non esistesse. Perchè ?!
  • Re: L'App si avvia ma la finestra resta vuota

    Senza tag trovo difficile capirci qualcosa, ma la seconda riga di :

    data1 = "" + S7.GetWordAt(data, 0);
    data1 = "" + S7.GetWordAt(data, 2);

    in doInBackground annulla la prima.
  • Re: L'App si avvia ma la finestra resta vuota

    Finalmente ho risolto rifacendo tutto da capo, anche se non mi sono ancora chiare alcune cose, a volte l'App Android funziona anche se l'IDE Android Studio segnala degli errori, mentre, in altri casi, nonostante l'IDE non segnala errori, l'App non funziona, ecc...
    Inoltre, credo sia normale ma è da poco tempo che io uso Android Studio e pertanto non lo conosco ancora bene, ho notato che durante la creazione di un progetto il PC dev'essere connesso a Internet, in modo che l'IDE installi da se tutti i componenti mancanti, necessari per la creazione del progetto stesso.
  • Re: L'App si avvia ma la finestra resta vuota

    Impara intanto ad utilizzare i fragment ... la MainActivity sarà solo una..
    i fragment sono più veloci e più facili da utilizzare...
    Per la connessione ad internet la tua affermazione è vera. anche se, una volta scaricati tutti gli elementi puoi eseguire codice e compilare anche offline
Devi accedere o registrarti per scrivere nel forum
8 risposte