2012-04-10 12 views
0

Ich versuche, einen Einstellungsbildschirm für meine Android-Anwendung zu machen, aber ich versagen völlig. Ich folge this guide. Wenn ich versuche, die Anwendung zu installieren, ich diese Fehlermeldung erhalten, und es wird die App auf meinem Handy nicht installieren:Android Vorlieben Ausgabe

[2012-04-10 12:54:45 - AndroidCurrencyConverter] ------------------------------ 
[2012-04-10 12:54:45 - AndroidCurrencyConverter] Android Launch! 
[2012-04-10 12:54:45 - AndroidCurrencyConverter] adb is running normally. 
[2012-04-10 12:54:45 - AndroidCurrencyConverter] Performing ValutaConverter.namespace.AndroidValutaConverterActivity activity launch 
[2012-04-10 12:54:45 - AndroidCurrencyConverter] Automatic Target Mode: using device '3134BC2BBCA800EC' 
[2012-04-10 12:54:45 - AndroidCurrencyConverter] Uploading AndroidCurrencyConverter.apk onto device '3134BC2BBCA800EC' 
[2012-04-10 12:54:46 - AndroidCurrencyConverter] Installing AndroidCurrencyConverter.apk... 
[2012-04-10 12:54:49 - AndroidCurrencyConverter] Success! 
[2012-04-10 12:54:49 - AndroidCurrencyConverter] Starting activity ValutaConverter.namespace.AndroidValutaConverterActivity on device 3134BC2BBCA800EC 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=ValutaConverter.namespace/.AndroidValutaConverterActivity } 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=ValutaConverter.namespace/.AndroidValutaConverterActivity } from null (pid=11486, uid=2000) requires android.permission.INTERNET 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at android.os.Parcel.readException(Parcel.java:1327) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at android.os.Parcel.readException(Parcel.java:1281) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1631) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at com.android.commands.am.Am.runStart(Am.java:433) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at com.android.commands.am.Am.run(Am.java:107) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at com.android.commands.am.Am.main(Am.java:80) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at com.android.internal.os.RuntimeInit.finishInit(Native Method) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:238) 
[2012-04-10 12:54:52 - AndroidCurrencyConverter] ActivityManager: at dalvik.system.NativeStart.main(Native Method) 

Was ich von diesem Code zu verstehen war, dass, wenn versucht es, die Absicht zu starten, schlägt fehl, weil es android.permission.INTERNET erfordert. Aber das ist bereits in meiner Manifest-Datei definiert.

hatte ich die App zu einem bestimmten Zeitpunkt zu arbeiten, aber ich fügte eine andere Aktivität, und einige XML-Dateien ein paar Dinge zu meiner Tätigkeit aufgenommen. Danach wird die App nicht auf dem Telefon installiert. Was ich hinzugefügt wurde:

In der Aktivitätsklasse:

addPreferencesFromResource(R.xml.preferences); 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add(Menu.NONE, 0, 0, "Show current settings"); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case 0: 
     startActivity(new Intent(this, ShowSettingsActivity.class)); 
     return true; 
    } 
    return false; 
} 

Wenn Sie weitere Informationen über den Code oder etwas wie das brauchen, ich werde gerne etwas davon abgeben.

Hilfe!

+0

Post-Manifest-Datei .. – user370305

+0

Bitte fügen Sie den Inhalt Ihrer Manifest-Datei – Bandreid

+0

[Hier ist der Code für die Manifest-Datei] (http://pastie.org/3761284) – Loyalar

Antwort

2

Es soll,

<uses-permission 
     android:name="android.permission.INTERNET" /> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name" 
     android:name=".AndroidValutaConverterActivity" 
     android:theme="@android:style/Theme.DeviceDefault" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".ShowSettingsActivity"/> 
</application> 

es von Aktivitäts-Tag in Ihrer Manifest-Datei entfernen.

+0

In Ordnung. Ich habe das als meine Manifest-Datei verwendet, aber jetzt funktioniert die Anwendung nicht mehr, wenn ich versuche, sie zu installieren. Ich bekomme eine Fatal Exception: Main. – Loyalar

+0

Bearbeiten Sie Ihr neues Fehlerprotokoll in Ihrer Frage. – user370305

+0

[Hier ist das Fehlerprotokoll von logcat] (http://pastie.org/3761344) – Loyalar

1

der Tat, aber Ihr nicht ermöglicht die INTERNET Erlaubnis im Manifest (statt, sagen Sie explictely, dass die Aktivität erfordert die INTERNET Erlaubnis).

Sie sollten eine <permission> element an der Wurzel des Manifests haben, wie in der doc erläutert.

0

Zwei Dinge zu überprüfen.

  1. Ihre Aktivität PreferenceActivity erweitert und

  2. Dass Ihr Layout einen Standardlistview mit der ID android hat: Liste

    <ListView 
        android:id="@+id/android:list" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"/> 
    

auch denken, Sie möchten über die Implementierung OnSharedPreferenceChangeListener in Ihrer Aktivität, wenn Sie Änderungen an Einstellungen vornehmen müssen.