Permission Error beim starten einer neuen Activity

  • Antworten:1
Fadnincx
  • Forum-Beiträge: 4

03.10.2012, 23:07:41 via Website

Hallo zusammen

Ich habe ein Problem und zwar, ich möchte einer App ein Splashscreen hinzufügen. Also habe ich eine neue Klasse angelegt und ein dazugehöriges XML-File. Im XML-File wird einfach ein Background definiert und das wars. (Damit mein Text besser zu lesen ist sind alle Quellcodes unten zufinden..)
In der Class starte ich einen neuen Thread der 5Sekunden wartet und dann die App startet.
Nun da die App ohne Splashscreen ohne Probleme funktioniert denke ich, das es nicht viel sinn macht diesen Teil zu posten. (oder liege ich da mit Falsch?)
In der Android Manifest Datei habe ich den Splashscreen hinzugefügt. Und das TicTacToe von launcher zu default geändert.

Nun ich habe viel im Internet gesucht und keine Lösung gefunden. Denn wenn ich die App im Emulator starten möchte kommt alles normal, bis zu diesem Punkt wo der Splashscreen fertig ist. Dort Stürtzt die App ab.

Meldung:
"Sorry! The application TicTacToe (process com.fadnincx.tictactoe) has stopped unexpectedly. Please try again. Force close"

Soweit ich das CatLog Interpretiere fehlt irgendwo eine Permission, aber wo? Was hat es mit der "ACCESS_CHECKIN_PROPERTIES" aufsich?
Ich bin nach einigen Stunden erfolglose suche nach dem Fehler total Ratlos und um jede Hilfe dankbar.

Quellcodes:

XML-File des Splashscreens:
1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:orientation="vertical"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:background="@drawable/splash">
7
8</LinearLayout>

Class Datei für Splashscreen:
1package com.fadnincx.tictactoe;
2
3import android.app.Activity;
4import android.content.Intent;
5import android.os.Bundle;
6
7public class Splash extends Activity{
8
9 @Override
10 protected void onCreate(Bundle savedInstanceState) {
11 // TODO Auto-generated method stub
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.splash);
14 Thread timer = new Thread(){
15 public void run(){
16 try{
17 sleep(5000);
18 } catch (InterruptedException e){
19 e.printStackTrace();
20 } finally {
21 Intent t = new Intent("com.fadnincx.tictactoe.TICTACTOE");
22 startActivity(t);
23 }
24 }
25 };
26 timer.start();
27 }
28
29}

Das Android-Manifest:
1<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="com.fadnincx.tictactoe"
3 android:versionCode="1"
4 android:versionName="1.0" >
5
6 <uses-sdk
7 android:minSdkVersion="8"
8 android:targetSdkVersion="15" />
9 <uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
10
11 <application
12 android:icon="@drawable/ic_launcher"
13 android:label="@string/app_name"
14 android:theme="@style/AppTheme"
15 android:permission="android.permission.ACCESS_CHECKIN_PROPERTIES">
16 <activity
17 android:name=".Splash"
18 android:label="TicTacToe-Splash"
19 android:screenOrientation="portrait"
20 android:permission="android.permission.ACCESS_CHECKIN_PROPERTIES">
21 <intent-filter>
22 <action android:name="android.intent.action.MAIN" />
23 <category android:name="android.intent.category.LAUNCHER" />
24 </intent-filter>
25 </activity>
26 <activity
27 android:name=".TicTacToe"
28 android:label="@string/title_activity_tic_tac_toe"
29 android:permission="android.permission.ACCESS_CHECKIN_PROPERTIES"
30 android:screenOrientation="portrait">
31 <intent-filter>
32 <action android:name="com.fadnincx.tictactoe.TICTACTOE" />
33 <category android:name="android.intent.category.DEFAULT" />
34 </intent-filter>
35 </activity>
36 <activity
37 android:name=".prefs"
38 android:label="@string/app_name"
39 android:screenOrientation="portrait" >
40 <intent-filter>
41 <action android:name="com.fadnincx.tictactoe.PREFS"/>
42 <category android:name="android.intent.category.DEFAULT" />
43 </intent-filter>
44 </activity>
45 </application>
46
47</manifest>

Das CatLog:
110-03 20:44:00.984: D/dalvikvm(982): GC_EXTERNAL_ALLOC freed 749 objects / 55680 bytes in 57ms
210-03 20:44:06.854: W/dalvikvm(982): threadid=7: thread exiting with uncaught exception (group=0x4001d800)
310-03 20:44:06.854: E/AndroidRuntime(982): FATAL EXCEPTION: Thread-8
410-03 20:44:06.854: E/AndroidRuntime(982): java.lang.SecurityException: Permission Denial: starting Intent { act=com.fadnincx.tictactoe.TICTACTOE cmp=com.fadnincx.tictactoe/.TicTacToe } from ProcessRecord{44fb9170 982:com.fadnincx.tictactoe/10037} (pid=982, uid=10037) requires android.permission.ACCESS_CHECKIN_PROPERTIES
510-03 20:44:06.854: E/AndroidRuntime(982): at android.os.Parcel.readException(Parcel.java:1247)
610-03 20:44:06.854: E/AndroidRuntime(982): at android.os.Parcel.readException(Parcel.java:1235)
710-03 20:44:06.854: E/AndroidRuntime(982): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1298)
810-03 20:44:06.854: E/AndroidRuntime(982): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1373)
910-03 20:44:06.854: E/AndroidRuntime(982): at android.app.Activity.startActivityForResult(Activity.java:2817)
1010-03 20:44:06.854: E/AndroidRuntime(982): at android.app.Activity.startActivity(Activity.java:2923)
1110-03 20:44:06.854: E/AndroidRuntime(982): at com.fadnincx.tictactoe.Splash$1.run(Splash.java:22)

Antworten
Fadnincx
  • Forum-Beiträge: 4

04.10.2012, 15:10:43 via Website

Nach dem ich alle "ACCESS_CHECKIN_PROPERTIES" aus dem Android Manifest entfernt habe funktioniert das Ganze. :) Jedoch zeigt mir Eclipse folgende Warnung an:"Exported activity does not require permission". Was hat das zu bedeuten???

Das Android-Manifest sieht nun so aus:
1<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="com.fadnincx.tictactoe"
3 android:versionCode="1"
4 android:versionName="1.0" >
5
6 <uses-sdk
7 android:minSdkVersion="8"
8 android:targetSdkVersion="15" />
9
10 <application
11 android:icon="@drawable/ic_launcher"
12 android:label="@string/app_name"
13 android:theme="@style/AppTheme" >
14
15 <activity
16 android:name=".Splash"
17 android:label="@string/title_activity_tic_tac_toe" >
18 <intent-filter>
19 <action android:name="android.intent.action.MAIN" />
20
21 <category android:name="android.intent.category.LAUNCHER" />
22 </intent-filter>
23 </activity>
24 <activity
25 android:name=".TicTacToe"
26 android:label="@string/title_activity_tic_tac_toe" >
27 <intent-filter>
28 <action android:name="com.fadnincx.tictactoe.SPLASH" />
29
30 <category android:name="android.intent.category.DEFAULT" />
31 </intent-filter>
32 </activity>
33 <activity
34 android:name=".prefs"
35 android:label="@string/app_name">
36 <intent-filter>
37 <action android:name="com.fadnincx.tictactoe.PREFS"/>
38 <category android:name="android.intent.category.DEFAULT" />
39 </intent-filter>
40 </activity>
41 </application>
42
43</manifest>

— geändert am 04.10.2012, 15:11:13

Antworten