2011-12-24 27 views
7

solución: proyecto de destino prueba también debe añadir WRITE_EXTERNAL_STORAGE en AndroidManifest.xmlpermiso denegado después de añadir "WRITE_EXTERNAL_STORAGE" en AndroidManifest.xml

esta pregunta vino de un proyecto de prueba androide, que no se puede escribir la prueba resultado en SDcard. Agregar WRITE_EXTERNAL_STORAGE en el proyecto de prueba objetivo puede resolver este problema.


tirar siempre permiso denegado cuando se utiliza el código siguiente para escribir el archivo XML en sdcard del emulador. . He añadido WRITE_EXTERNAL_STORAGE" en AndroidManifest.xml

 @Override 
public void onStart(){ 

    try { 
     File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
     myWriter = new FileWriter(new File(root, TEST_RESULT+".xml"));   
     startResultOutput(myWriter); 
    } catch (IOException e) { 
     Log.d("TestInfo", "after new FileWriter: "+e.getMessage()); 
    } 
    super.onStart(); 

} 

apresados ​​IOExcetion, el mensaje era: después de nuevo FileWriter: /mnt/sdcard/InterFace_test_result.xml (Permiso denegado)

A continuación se muestra el manifiesto código

<application android:icon="@drawable/icon" android:label="@string/app_name"> 

<uses-library android:name="android.test.runner" /> 
</application> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS"></uses-permission> 
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> 

Se montó la tarjeta SD, porque puedo usar otra aplicación para escribir archivos en una tarjeta sd externa.

¿Alguien me puede dar alguna sugerencia?

PS: el sistema emulador es 2.3.3

+1

¿Ha configurado una tarjeta de memoria SD en los parámetros de los emuladores? en la interfaz donde puedes crearlo hay una opción para eso –

+0

sí ~ Puedo usar otra aplicación para escribir archivos en la tarjeta sd de mi emulador, y desde adb shell, también puedo operar la tarjeta sd. – Millie

+0

Tengo el mismo problema. ¿Has resuelto esto? ver mi post: http://stackoverflow.com/questions/10877740/traceview-cant-write-sd-card – gladman

Respuesta

1

Problema:

Lo que puedo entender es, Está añadiendo permission dos veces

  1. una vez en Application etiqueta como un atributo
  2. y la segunda vez que usa <use-permission>

Solución:

Prueba a eliminar cualquiera de ellos.

+0

Gracias por su ayuda, pero todavía no puede funcionar. Eliminé una persistencia de la etiqueta de la aplicación ... – Millie

0

Debe agregar la etiqueta de permiso <uses-permission> antes de la etiqueta <application>.

+1

No es necesario ... – Nikhil