Originariamente inviato da valia
diciamo che senza saper né leggere né scrivere controllerei questo

codice:
04-09 17:33:38.323: W/System.err(15320): java.io.IOException: Error running exec(). Command: [/sdcard/scritturafile.sh] Working Directory: null
cioè da cosa deriva questo errore. Il fatto che non riesca a trovare la working directory creeedoooo sia la fonte del tuo errore.

Una rapida ricerca su google e stackoverflow (solo per dirne uno).

Se non vuoi usare il runtime, setta bene l'ambiente
Eh ci sto sbattendo la testa da qualche giorno anche su stackoverflow . Non sono sicuro ma forse il problema è proprio il percorso nella sdcard..dovrei portare la shell nella root ma ora sono via quindi non posso provare.. l'alternativa è usare questo codice :
codice:
package com.mkyong.android;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import java.io.IOException;
import com.example.toast.R;

public class MainActivity extends Activity {


private Button button;

public void onCreate(Bundle savedInstanceState) {
    final Runtime runtime = Runtime.getRuntime();
    try {
        runtime.exec("su");
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab1);


    button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
        @SuppressLint("SdCardPath")
        @Override
        public void onClick(View arg0) {
            final Runtime runtime = Runtime.getRuntime();
            try {
                runtime.exec("echo 3 > /proc/sys/vm/drop_caches");
                Toast.makeText(MainActivity.this, "Script lanciato con `successo, memoria svuotata.", Toast.LENGTH_LONG).show();`
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
}
}
Dove eseguo direttamente dal java l'istruzione contenuta nella shell. Il che sarebbe anche meglio cosi non sono legato allo script esterno. Ma il punto è che non va se devo fare un mkdir o la creazione di un file di testo funziona ma con echo 3 > /proc/sys/vm/drop_caches no...non capisco.