Hilfe zu Programm

  • Antworten:32
  • OffenNicht stickyNicht beantwortet

21.04.2012 00:49:53 via Website

Hey Leute.

Ich bin neu im Programmieren von Android-Apps und muss für die Schule eine App schreiben.
Ich habe ein simples Programm erstellt, mit einer Gitarre die einfach Töne abspielt.
Im Emulator funktioniert dieses Programm, jedoch auf meinem handy(Samsung Galaxy S1, Firmware: Android 2.2) nicht.


Hier das manifest:

1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.example.GuitarHero1"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk android:minSdkVersion="8" />
8
9 <supports-screens android:anyDensity="true"
10 android:largeScreens="true"
11 android:smallScreens="true" />
12
13 <supports-screens android:anyDensity="true" />
14
15 <application
16 android:icon="@drawable/ic_launcher"
17 android:label="@string/app_name" >
18 <activity
19 android:name=".GuitarHero1Activity"
20 android:label="@string/app_name" >
21 <intent-filter>
22 <action android:name="android.intent.action.MAIN" />
23
24 <category android:name="android.intent.category.LAUNCHER" />
25 </intent-filter>
26 </activity>
27 </application>
28
29</manifest>

Der Quellcode der main-class ist fehlerfrei, und wie gesagt es läuft im Emulator.
Ich habe den apk-File erstellt und aufs handy geladen, dieses Programm lässt sich soweit auch gut installieren,
nur beim Starten stürzt es dann ab....

Bitte um eure Hilfe

21.04.2012 10:48:56 via Website

ich habe mir jetzt nen logcat dazugemacht, auch hier aus dem forum:

1public class GuitarHero1Activity extends Activity {
2
3 public static final String LOG_TAG = "GuitarHero1";
4
5 /** Called when the activity is first created. */
6
7 @Override
8 public void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.main);
11
12 int mint=0;
13 Log.e(LOG_TAG, "mint value: "+ mint);

Aber wenn ich den ausführe, zeigt er mir keine Fehler an... ist dieser Quellcode fehlerhaft, oder gibt es wirklich keine fehler??

24.04.2012 12:47:32 via Website

Ich hab mir jetzt heute wieder die Zeit genommen, daran weiter zu arbeiten.
Ich weiß jetzt zwar was du meinst, aber nicht wie ichs machen soll...
Ich finde im Netz nur Anleitungen, die erklären, wie du das USB debugging auf dem smartphone aktivierst, aber nicht wie man es letztendlich macht?

24.04.2012 14:46:53 via Website

Hi Patrick,
wenn ich nach "Android Device Debugging Tutorial" google finde ich haufenweise Anleitungen.

Du musst einfach in deinem Quellcode links an der Seite (wo die Zeilennummer steht) doppelt klicken. Damit setzt du dort einen Breakpoint. Nun gehst du im Eclipse mit Rechtsklick auf dein Projekt Debug as -> Android Application. Wenn in deiner App nun die von dir markierte Codezeile aufgerufen wird meldet sich Eclipse bei dir. Der Rest ist selbsterklärend.

Liebe Grüße Maximilian

Vergesse nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag :grin: - Birthdays Website

24.04.2012 16:50:11 via Website

ich sag ja, bin kompletter neuling, ich hab das jetzt so gemacht wie du es gesagt hast, aber wie gesagt, im emulator hat es keine fehler.
ich hab jetz versucht den debugger direkt übers handy laufen zu lassen, aber eclipse zeigt mein handy net an, obwohl ichs verbunden habe und debugg modus eingeschaltet habe.

Im DDMS zeigts mir nur den Emulator an

24.04.2012 17:46:57 via Website

Hab jetzt nochmal nachgeschaut, ich dachte die treiber seien installiert.
jetz hab ich die manuell installieren wollen, dann bricht die installation immer ab.
Benutze Win 7.
Ich lade jetzt mal samsung Kies herunter, vllt hilft das ja was.
aber laut google, haben das problem mehrere das die SGS1 treiber nicht installiert werden wollen...


muss ich da vielleicht noch irgendwas ins manifest schreiben, das das programm weiß welches handy?
Oder sowas in der Art.
Weil die Treiber hab ich jetzt installiert, im Arbeitsplatz zeigts des auch an als mobil telephon.
Aber eclipse immernoch nicht...

— geändert am 24.04.2012 18:27:35

25.04.2012 16:42:07 via Website

So hab den fehler :-D
hab in android 4.0 geschrieben aber mein handy hat android 2.3....
jetzt wollt ich des auf 2.3 nochmal schreiben, aber es wird kein gridlayout unterstützt.
hab jetzt ne support library runtergeladen die gridlayout und space views bis android 2.1 zur verfügung stellt.
doch ich finde keine passable anleitun diese einzubinden im netz, hab schon einiges durchprobiert was ich so gefunden hab.

vielen dank im voraus für eure ratschläge ;-)

gruß
patrick

25.04.2012 17:55:13 via Website

Hast du die Gridlayout Support Library vom Android SDK verwendet? Die hab ich letztens auch getestet und es hat auch bei mir etwas gedauert bis ich die zum Laufen bekommen habe.

1. Du musst die GridLayout Libraray als Library Project in deine App einbinden.
2. Du musst einen neuen Namespace in deinem XML für das Layout definieren und diesem allen Attributen die Gridlayout-spezifisch sind voranstellen. Das Gridlayout selbst musst du mit vollem Packagenamen verwenden. Also nicht nur <GridLayout ...> sondern <android.support.v7.widget.GridLayout ...>.


1<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:app="http://schemas.android.com/apk/res-auto"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 app:alignmentMode="alignBounds"
6 app:columnCount="4"
7 app:columnOrderPreserved="false"
8 app:useDefaultMargins="true" >
9
10 <TextView
11 android:id="@+id/description"
12 app:layout_column="0"
13 app:layout_columnSpan="4"
14 app:layout_gravity="fill_horizontal"
15 android:text="@string/description" />
16......
17</android.support.v7.widget.GridLayout>

25.04.2012 22:29:22 via Website

Multiple annotations found at this line:
- error: No resource identifier found for attribute 'columnCount' in package 'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'columnOrderPreserved' in package
'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'alignmentMode' in package 'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'useDefaultMargins' in package
'com.example.GuitarHero1'


was meint man jetzt damit?
hab sonst alles so gemacht wie du gesagt hast, habe die library vom sdk manager.

26.04.2012 10:24:09 via Website

Mh ja irgendwas scheint da noch nicht zu passen. Das Library Projekt hast du in dein App Projekt eingebunden. Gegen welche Android Version kompilierst du? Kannst du vielleicht mal das XML von deinem Layout posten?

26.04.2012 17:19:50 via Website

1<?xml version="1.0" encoding="utf-8"?>
2Error--------><android.support.v7.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 app:alignmentMode="alignBounds"
7 app:columnCount="4"
8 app:columnOrderPreserved="false"
9 app:useDefaultMargins="true" >
10
11
12
13
14
15
16 <ImageView
17 android:id="@+id/imageView1"
18 android:layout_width="236dp"
19 android:layout_height="454dp"
20 android:layout_column="1"
21 android:layout_columnSpan="7"
22 .......
23
24 </android.support.v7.GridLayout>

habe die datei in nem ordner namens libs eingebunden, den error hab ich markiert, da zeigts die meldung an.
habe in 4.0 programmiert und will auf 2.3.3 kompilieren.

26.04.2012 19:36:25 via Website

Patrick Klaiber
1<?xml version="1.0" encoding="utf-8"?>
2Error--------><android.support.v7.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 app:alignmentMode="alignBounds"
7 app:columnCount="4"
8 app:columnOrderPreserved="false"
9 app:useDefaultMargins="true" >
10
11
12
13
14
15
16 <ImageView
17 android:id="@+id/imageView1"
18 android:layout_width="236dp"
19 android:layout_height="454dp"
20 android:layout_column="1"
21 android:layout_columnSpan="7"
22 .......
23
24 </android.support.v7.GridLayout>

In deinem ImageView Element passt schon mal der Namespace von den Attributen "layout_column" und "layout_columnSpan" nicht, da diese vom GridLayout stammen, muss hier beide mal "app" statt "android" davor stehen. Aber ich denke nicht, dass der Fehler daher stammt.

habe die datei in nem ordner namens libs eingebunden, den error hab ich markiert, da zeigts die meldung an.
habe in 4.0 programmiert und will auf 2.3.3 kompilieren.

Ich denke hier liegt vermutlich das Problem. Wobei ich jetzt nicht weiss wie du das genau gemacht hast. Ich bin beim einbinden wie folgt vorgegangen. Ich habe in eclipse ein neues Android Projekt erstellt, und als Ordner des Projekts den Ordner vom GridLayout angegeben. Eclipse nutzt dann diesen mit dem bestehenden Inhalt als Projekt-Ordner. Wenn das Projekt erstellt ist, muss das Projekt noch als Library-Projekt markiert werden (Rechtesklick auf das Projekt -> Properties -> Android, dann ganz runter scrollen und dann den Haken bei "Is Libray" setzen). Als nächstes muss es in deinem Projekt eingebunden werden (Rechtklick auf dein Projekt -> Properties -> Android, runterscrollen und dann "Add" klicken und das Librar Projekt auswählen.).

Das sollte dann eigentlich funktionieren. Also mehr hab ich auch nicht gemacht.

26.04.2012 19:46:52 via Website

ne ich habs schon richtig eingebunden, soweit bin ich gekommen.

jetzt geht wieder net jetzt meckert eclipse an der defi des layouts rum...

1app:layout_width="match_parent"
2 app:layout_height="match_parent"




"<android.support.v7.GridLayout>" does not set the required layout_height attribute:
(1) Set to "wrap_content"
(2) Set to "match_parent"

und wieder die gleichen fehler, wie oben....



und isLibrary hab ich auch gemacht und es geadded.

— geändert am 26.04.2012 20:11:17

26.04.2012 21:11:44 via Website

1app:layout_width="match_parent"
2app:layout_height="match_parent"

Das ist falsch. layout_height und layout_width stammen nicht direkt von GridLayout her sondern von der normalen View Klasse. Daher muss hier wieder statt "app" ein "android" davor.

— geändert am 26.04.2012 22:14:15

26.04.2012 23:19:59 via Website

Ich habe halt in den properties auf android 2.3.3 umgestellt, im xml editor und im manifest minsdk version: 10 angegeben.
und jetzt will ich dieses layout, da es gridlayout enthält, für android 2.3.3 kompatibel machen.

aber diese errors sind immernoch da:

Multiple annotations found at this line:
- error: No resource identifier found for attribute 'columnCount' in package 'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'columnOrderPreserved' in package
'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'alignmentMode' in package 'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'layout_height' in package 'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'layout_width' in package 'com.example.GuitarHero1'
- error: No resource identifier found for attribute 'useDefaultMargins' in package
'com.example.GuitarHero1'

die zeigts beim gridlayout an, und beim textview...

und bei jedem button diese meldung:

error: No resource identifier found for attribute 'layout_row' in package 'android'

27.04.2012 10:34:22 via Website

Mh welche Version des ADT Plugins verwendest du? Ist es aktuell? Wenn mich nicht alles täuscht, dann funktioniert das Definieren eines neuen Namespaces mittels
1xmlns:app="http://schemas.android.com/apk/res-auto"
erst ab Version 17. Vielleicht ist das ja der Grund. Ansonsten kannst du mir dein Projekt mal schicken, dann würde ich vielleicht am Wochenende mal drüber schauen, wenn ich Zeit dafür finde.