impossible d'ouvrir le fichier de trace
Je veux tester les performances de mon application . Je l'ai commencé avec application simple et d'essayer de mettre traceview mais son soudain échouer sur mon téléphone android avec la force à fermer. Merci de me guider comment puis-je mettre mon code propley pour simple application android pour obtenir des mains de la saleté avec des Traces de vue
Voici le code
package test.vérifier;
import android.app.Activity;
import android.os.Bundle;
import android.os.Debug;
public class tracev extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Debug.startMethodTracing("traceview");
setContentView(R.layout.main);
}
@Override
protected void onStop() {
Debug.stopMethodTracing();
super.onStop();
}
}
Voici le fichier de manifeste
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="test.check"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".tracev"
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>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
J'ai également ajouté
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
mais sa ne fonctionne pas . Je pense que sa car de cette ligne dans le logcat, mais je ne suis pas sûr de la façon de traiter avec elle
05-20 23:39:43.913: ERROR/dalvikvm(11673): Unable to open trace file '/sdcard/traceview.trace': Permission denied
Logcat
05-20 23:39:43.903: DEBUG/dalvikvm(11673): +++ active profiler count now 1
05-20 23:39:43.913: INFO/dalvikvm(11673): TRACE STARTED: '/sdcard/traceview.trace' 8192KB
05-20 23:39:43.913: ERROR/dalvikvm(11673): Unable to open trace file '/sdcard/traceview.trace': Permission denied
05-20 23:39:43.913: DEBUG/dalvikvm(11673): +++ active profiler count now 0
05-20 23:39:43.913: DEBUG/AndroidRuntime(11673): Shutting down VM
05-20 23:39:43.913: WARN/dalvikvm(11673): threadid=3: thread exiting with uncaught exception (group=0x4001e390)
05-20 23:39:43.913: ERROR/AndroidRuntime(11673): Uncaught handler: thread main exiting due to uncaught exception
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.check/test.check.tracev}: java.lang.RuntimeException: file open failed
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.os.Looper.loop(Looper.java:123)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.ActivityThread.main(ActivityThread.java:4595)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at java.lang.reflect.Method.invokeNative(Native Method)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at java.lang.reflect.Method.invoke(Method.java:521)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at dalvik.system.NativeStart.main(Native Method)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): Caused by: java.lang.RuntimeException: file open failed
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at dalvik.system.VMDebug.startMethodTracing(Native Method)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at dalvik.system.VMDebug.startMethodTracing(VMDebug.java:156)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.os.Debug.startMethodTracing(Debug.java:443)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.os.Debug.startMethodTracing(Debug.java:391)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at test.check.tracev.onCreate(tracev.java:12)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
05-20 23:39:43.983: ERROR/AndroidRuntime(11673): ... 11 more
05-20 23:39:44.013: INFO/Process(94): Sending signal. PID: 11673 SIG: 3
05-20 23:39:44.013: INFO/dalvikvm(11673): threadid=7: reacting to signal 3
05-20 23:39:44.023: INFO/dalvikvm(11673): Wrote stack trace to '/data/anr/traces.txt'
05-20 23:39:51.213: DEBUG/KeyguardViewMediator(94): pokeWakelock(15000)
05-20 23:39:51.213: INFO/HtcLockScreen(94): Press Menu key to unlock screen
Je me pose des questions sur un point, il n'y a rien dans la carte sd et en face d'elle il n'y a pas d'appareil sélectionné . Peut-être cela la cause de l'erreur , voici la photo
Qui version d'Android que vous utilisez? et êtes-vous à l'aide de l'émulateur? si oui, avez-vous créer une carte SD virtuelle ?
MByD j'ai ajouté le fichier de Manifeste
Miguel Serrano son <uses-sdk android:minSdkVersion="4" />, et je suis directement sur mon téléphone android
veuillez vérifier, j'ai ajouté une image de plus, je me demande
OriginalL'auteur user667340 | 2011-05-20
Vous devez vous connecter pour publier un commentaire.
Si c'est un émulateur, assurez-vous que l'émulateur a une SDCard attaché à elle.
Aussi, la meilleure pratique consiste à utiliser getExternalStorageDirectory().
Essayer de mettre les autorisations ligne droite, sous la
uses-sdk
ligne.Utiliser un nom de fichier différent que
traceview
pour s'assurer qu'aucune autre application a verrou sur elle.Votre Carte SD est vide. Avez-vous été en mesure d'y accéder avant? C'est peut-être endommagé.
Édité avec une autre suggestion.
essayé "Essayer de mettre les autorisations de la ligne droite sous les uses-sdk ligne", mais ne fonctionne pas 🙁
Vous pourriez monter votre téléphone SDCard et essayez de l'ouvrir avec le bloc-notes ou TextPad.
jetez un oeil a-yonder twigstechtips.blogspot.com/2011/04/...
OriginalL'auteur Haphazard
Sur la Guimauve (Android-Version 6, l'API de Niveau 23) juste avoir l'autorisation d'écriture dans le manifeste n'est pas suffisant. Vous devez vous demandez ce que c' autorisation au moment de l'exécution, ou vous pouvez aller dans les préférences système et donner le stockage de l'autorisation de votre application.
OriginalL'auteur Vladimir
À l'aide de TraceView nécessite 2 autorisations:
OriginalL'auteur Tobrun
Sous Android Virtual Device Manager, Sélectionnez et Modifiez votre émulateur.
Donner de la valeur en vertu de Carte SD en option:
Taille : 100 MO
Cela devrait fonctionner pour vous
OriginalL'auteur HimalayanCoder
La solution la plus simple que j'ai trouvé est d'utiliser Contexte.getFileDir() comme emplacement de stockage. Cela présente les avantages suivants sur Contexte.getExternalFilesDir():
Exemple de code pour commencer la méthode de traçage:
Note: c'est une bonne idée pour se connecter à la
methodTracingPath
pour voir où le fichier sera stocké.Exemple:
/data/data/com.YOUR_PACKAGE.debug/files/AppStart.trace
Pour copier le fichier à partir de votre Émulateur sur votre PC, vous pouvez utiliser le l'Explorateur de Fichiers dans le Android Device Monitor (voir Travailler avec un émulateur ou un système de fichier du périphérique)
Enfin, vous pouvez juste drag&drop le fichier de trace pour Android Studio pour voir le méthode de traçage de vue.
OriginalL'auteur TmTron
J'ai eu ce problème pendant le débogage sur mon périphérique physique et trouve cette question. J'ai corrigé par:
OriginalL'auteur TrophyGeek
Aucune de ces réponses pour résoudre mon problème. Je dois
Modification de l'appel à
De débogage.startMethodTracing("/data/local/démarrage");
où je touche le fichier avant de l'exécuter et de chmod à 777.
OriginalL'auteur Brian Chu
Mon fichier de trace ont pas de données lorsque
Debug.stopMethodTracing();
est à l'intérieur deonDestroy()
méthode de l'ActivitéWRITE_EXTERNAL_STORAGE
autorisationJe ne trouve pas de fichier de trace lorsque
File Exployer -> sdcard -> Android -> data -> your_app -> files
mais certains le périphérique, il est à l'intérieur deFile Exployer -> sdcard
et certains appareils, il est à l'intérieur deFile Exployer -> data
OriginalL'auteur Phan Van Linh