App-Entwicklung mit Android Studio in Java

D

Data2006

Ambitioniertes Mitglied
0
Moin zusammen,

ich habe ein Problem. Und zwar ich habe von mitp ein Buch Android-Apps programmieren. Praxiseinstieg mit Android Studio.

Programmierung über Android Studio Oberfläche und Sprache Java. Habe beides runtergeladen (https://download.oracle.com/.../jdk-21_windows-x64_bin.exe und https://developer.android.com/studio).
Habe dann JDK 21 zuerst installiert. Dann das Android Studio. Bei der Installation vom Android Studio gab es scheinbar ein Problem mit HAXM. Mir wurde ein Link (https://github.com/.../Installation-Instructions-on-Windows) genannt wo man das HAXM neu installieren kann.
Da komme ich leider nicht weiter. Hänge am Punkt wo ich den Android SDK Manager soll. Wo finde ich den überhaupt?

Ich bin mir nicht sicher, aber es kann sein das bei der Installation Android Studio der SDK Manager nicht bei der Auswahl dabei war.

Kann mir jemand helfen?

Vielen Dank,
Heiko
 
Hallo Heiko ,

a)
Das 21er JDK hättest du nicht installieren müssen , der AS übernimmt dir Alles.
Ich arbeite selbst bei unseren aktuellen Apps immer noch mit 18 - das ist auch im Syntax mehr Java konform .

b)
Den SDK Manager findest du unter Tools ( siehe Screenshot)

c) HAXM -> neu WHPX
Alles Blödsinn die Emulatoren und deren Hardwarebeschleunigungen - die funktionieren nur rudimentär - Nutze besser ein physisches Device mit USB / ADB .
Das kannst du in AS auch direkt einblenden: Files -> Settings -> Tools -> Device Mirroring .
Oder am besten direkt scrcpy
GitHub - Genymobile/scrcpy: Display and control your Android device




1697796272724.png
 
Zuletzt bearbeitet:
Hmmmm… danke für die Antworten.
Mit physischem device meinst Du ich soll ein echtes Handy anschließen? Dann könnte ich für andere Handys/Tablets nicht entwickeln ne?

Soll ich jetzt das WHPX oder das scrcpy noch installieren? Wie gehe ich da vor?
Beim scrcpy habe ich eine ZIP-Datei unter Code. ZIP entpacken und unter Win10 installieren?!

LG
Heiko
 
Ja ein echtes Handy anschließen , bei mir laufen 4 parallel an USB über scrcpy .
Zumal du nur bei einem physischen Device die Bedienbarkeit wirklich überprüfen kannst.

Nur zur Info : Du muss dich strikt an die Google Vorgaben halten - auch Layout , dann laufen sie auch auf den meisten Geräten. Derzeit gibt es 18000 verschiedene Kombinationen auf dem Markt - da hilft auch kein emulator :)

b) Lass den gesammten HAMX WHPX Mist weg ..
c) Ja, Entpacken , Device EntwicklerOptionen ADB einschalten, anschließen, exe starten , glücklich sein.
Das Device wird dir dann in AS oben angezeigt

1697808805944.png
 
Zuletzt bearbeitet:
Hallo,

habe mal was ausprobieren wollen. Mein Samsung S9 über USB angeschlossen. Wollte die Test-App mal ausprobieren. Will wieder HAXM haben:
1697814035494.png


Das scrcpy habe ich runtergeladen und entpackt:

1697814159531.png


Was muß ich mit dem scrcpy machen? Eine setup.exe kann ich nicht finden?

LG
Heiko
Beiträge automatisch zusammengeführt:

PS: Bei dem Beispiel wurde …kt Kotlin angelegt. Wo stelle ich das auf Java um?
 
Zuletzt bearbeitet:
a) HAXM : Du hast auch oben rechts nicht dein S9 ausgewählt, sondern ein emulator-Image
(Bitte meine Hinweise genau verfolgen, dafür gebe ich mir die Mühe und schreibe sie ja hin ..... siehe Post #4)

b) Kotlin : Dann hast du das falsche Beispiel Projekt (non Java) gewählt

c) wieso setup.exe ? - die gibt es nicht - nimm scrcpy.exe (Siehe Beschreibung)
(Du hast im Übrigen den Source Code geladen und nicht die Binary oder wolltest du noch in C++ complieren ? )
 
Zuletzt bearbeitet:
Moin.

Muß trotzdem noch mal fragen, es will nicht so recht laufen. Auf meinem Handy habe ich die Entwickleroptionen aktiviert. Ich konnte auch das USB-Debugging einschalten.
Das scrcpy habe ich neu runtergeladen. Muß ich diese scrcpy.exe bei jedem Windowsstart einmal ausführen?
Der Menüpunkt Device EntwicklerOptionen ADB kann ich nicht einschalten, da mein AS die Menüpunkte nicht hat. Oder ist mit ADB das auf meinem Samsung Galaxy S9 gemeint? Dort kann ich das ADB aber auch nicht finden.

Bin auch mal alle Projektvorlagen durchgegangen, da steht überall nur Kotlin DSL, Kotlin DSL + Gradle Version Catalogs oder Groovy DSL zur Auswahl. Da muß igendwo eine falsche Einstellung im AS sein.

Mein Handy wurde aber mir zur Auswahl angeboten. Will ich aber die App laufen lassen, erhalte ich paar Fehlermeldungen:
1697922756136.png


Was kann/muß ich tun?

Vielen lieben Dank,
Heiko


PS: Und sorry für mein Anfänger-Doing.
 

Anhänge

  • 1697922704912.png
    1697922704912.png
    135,8 KB · Aufrufe: 54
Muß ich diese scrcpy.exe bei jedem Windowsstart einmal ausführen?
Nein - dann wenn du es verwenden möchtest.
Scrcpy - wie der Name schon sagt: "ScreenCopy" - ist lediglich ein Device Mirroring.

Der Menüpunkt Device EntwicklerOptionen ADB kann ich nicht einschalten, da mein AS die Menüpunkte nicht hat. Oder ist mit ADB das auf meinem Samsung Galaxy S9 gemeint? Dort kann ich das ADB aber auch nicht finden.

Ich verstehe nicht , was du machen möchtest -
Jetzt wird oben dein S9 angezeigt , das ist richtig - "play" knopf drücken und compliieren lassen .
Danach wird die App auf dem S9 ausgeführt - Warum du jetzt WIFI Pairing aktivieren willst , entzieht sich meiner Kenntnis.

Bin auch mal alle Projektvorlagen durchgegangen, da steht überall nur Kotlin DSL, Kotlin DSL + Gradle Version Catalogs oder Groovy DSL zur Auswahl. Da muß igendwo eine falsche Einstellung im AS sein.
Da liegt kein Fehler von AS vor , AS ist eine MultiPlattforn Entwicklungsumgebung (IntelliJ IDEA) - nicht nur für alleine für Android / Java / Kotlin
Der Entwickler entscheidet nun , was er machen möchte - Er legt i.d.R. daher selbst ein Projekt an.

Und damit man es etwas einfacher hat und schon ein wenig "vorgekaut" bekommt , gibt es ein paar rudimentäre Bespiele,
die aber im Prinzip nichts tun. Quasi ein "Leitfaden" als Helferlein - Weit weit weg vom Ziel.

Deshalb einfach mal selbst dort durchklicken und schauen, welches Sample Projekt Java unterstützt.
Z.B.

1697960372573.png



Mein Handy wurde aber mir zur Auswahl angeboten. Will ich aber die App laufen lassen, erhalte ich paar Fehlermeldungen:
Und jetzt haben wir den Schritt erreicht , bei dem der Entwickler Einstellungen vornehmen muss.

Im Konkreten zu deiner Fehlermeldung :

Du musst lt. den derzeitigen Google Richtinien deine ZielPlattform auf mindestens API 34 setzen ( im Gradle )
Daher ist die offizielle API Lektüre ein MUSS , bevor man mit der Entwicklung beginnt.
Dort steht drin , woran man sich halten muss.

Es ist im Prinzip das tägliche - und ich betone "tägliche" Gebetsbuch eines Entwicklers -
Ohne Dieses kann kein Ziel erreicht werden.
Wichtiger Hinweis : Inhalte können sich dort auch täglich ändern

Hier die "lebende" Lektüre:
Android API reference | Android Developers


Fazit :

Ein Sample Projekt ist lediglich ein Grundgerüst. Es weis nicht , was du tun möchtest.
Und nun muss der Entwickler erst mal das einstellen, was sein Ziel werden soll.
(Code-Sprache, Zielgeräte, verwendete Biblotheken etc etc)
 
Zuletzt bearbeitet:
swa00 schrieb:
Du hast doch geschrieben:
swa00 schrieb:
swa00 schrieb:
c) Ja, Entpacken , Device EntwicklerOptionen ADB einschalten, anschließen, exe starten , glücklich sein.
Was soll ich da machen? Ich finde das ADB nicht.

Ja, mein Handy ist jetzt da, ich gehe ja auf Play, dann kommt die besagte Fehlermeldung und die App läuft nicht.

Und nein, ich will kein WiFi Pairing machen, das sieht im Device Manager aus.

Da liegt kein Fehler von AS vor , AS ist eine MultiPlattforn Entwicklungsumgebung - nicht nur für alleine für Android / Java / Kotlin
Der Entwickler entscheidet nun , was er machen möchte - Er legt i.d.R. daher selbst ein Projekt an.
Ja nu, wenn ich AS starte kommt erst ein Fenster wo ich ein neues Projekt anlegen oder öffnen kann. Und dann kommt erst das Hauptfenster mit den Menüs und Symbole...
Wenn ich jetzt z. B. eine leere Projektvorlage nehme, wo kann ich dann von Kotlin auf Java umstellen?

Und jetzt haben wir den Schritt erreicht , bei dem der Entwickler Einstellungen vornehmen muss :

Im Konkreten zu deiner Fehlermeldung :

Du musst lt. den derzeitigen Google Richtinien deine ZielPlattform auf mindestens API 34 setzen ( im Gradle )
Daher ist die offizielle API Lektüre ein MUSS , bevor man mit der Entwicklung beginnt.
Dort steht drin , woran man sich halten muss.

In meinem Handy habe ich nur Knox API level 30 stehen. Wo oder wie kann ich das umstellen? Kann ja nicht sein das mein Handy schon zu alt ist für AS. Mir reicht ja für den Anfang ein einfaches "Hallo Welt!".

Danke für den Link. Leider alles auf Englisch und ich verstehe nicht viel.

LG
Heiko
 
@Data2006

  • Beim Anlegen des Projekts kannst du einstellen, ob die Java oder Kotlin programmieren willst.
  • Dein Handy ist nicht zu alt für Android Studio. Für jedes Projekt kannst du die minimale und die target Android Version einstellen. In der Datei "build.gradle" im App Ordner steht dann in etwas sowas: minSdk = 26, targetSdk = 34 (wenn das minSDK kleiner ist, dann wird deine App im Store auch älteren Geräten angeboten und die Zielgruppe wird größer :D)
 
  • Danke
Reaktionen: swa00
Hallo,

ich habe im app-Ordner eine Datei build.gradle.kts. build.gradle habe ich nicht:
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}

android {
namespace = "com.example.hallowelt"
compileSdk = 33

defaultConfig {
applicationId = "com.example.hallowelt"
minSdk = 27
targetSdk = 33
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.4.3"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

dependencies {

implementation("androidx.core:core-ktx:1.9.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
implementation("androidx.activity:activity-compose:1.8.0")
implementation(platform("androidx.compose:compose-bom:2023.03.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}

Hier muß ich dann targetSdk auf 34 setzen? Und compileSdk auch auf 34 setzen? Kann man das nicht standardmäßig so einstellen?

Ich lege ein neues Projekt an:
1698012307096.png


1698012351114.png


1698012420573.png

Wo muß ich Java einstellen?

Gute Nacht,
Heiko
 
Guten Morgen Heiko,

jeder Anfang ist schwer, da musste leider Jeder durch .

Dennoch sei an dieser Stelle die Anmerkung erlaubt , dass wir in einem Forum leider keinen Lehrgang bieten können , denn unsere Antworten werden in der Freizeit auf freiwilliger Basis erstellt.
Wir helfen gerne , wenn Jemand bei der Programmierung nicht weiterkommt. Das muss sich aber im Rahmen halten.
Denn auch wir haben unsere App-Projekte zu pflegen und das findet i.d.R. hauptberuflich statt (zumindest bei mir)


a)
In meinem Handy habe ich nur Knox API level 30 stehen. Wo oder wie kann ich das umstellen?
Es fehlt Dir leider sehr an Basiswissen, Welches wichtig ist.

Du kannst nicht für ein System entwickeln , wenn du es nicht kennst, und was in diesem Falle Min/Target API, die dazugehörigen Bibliotheken und deren Abhängigkeiten (zumindest rudimentär) bedeuten.
(KNOX hat nichts mit deiner Entwicklung zu tun)


b)
Auch wenn wir versuchen , Dir dennoch ein wenig auf die Beine zu helfen :

1) Du scheinst die Antworten zu deinen Fragen nicht genau zu lesen, und führst die empfohlenen Schritte einfach nicht durch.
Dadurch hätten sich alleine schon die letzten drei Screenshots von Dir erübrigt. - Das ist auch für uns ein wenig "frustrierend", wenn Antworten schlichtweg "ignoriert" werden.

3) ebenso die Antwort von @koje71
im App Ordner steht dann in etwas sowas: minSdk = 26, targetSdk = 34 (wenn das minSDK kleiner ist, dann wird deine App im Store auch älteren Geräten angeboten und die Zielgruppe wird größer :D)
Er schreibt dir doch , wo du was ändern musst und was es bedeutet.
Warum fragst du quasi angepi**t" denn nochmal nach ?

Im Zweifelsfalle gäbe es da auch noch die gute alte Tante Google .


c)
Kann man das nicht standardmäßig so einstellen?
Nein , dafür bist du verantwortlich ..... Du bist der Entwickler, nicht die Entwicklungs-Umgebung oder der PC.
Ausserdem war das oben KEINE Fehlermeldung sondern eine "Empfehlung" = Recomment
Warum "meckerst" du auch hier rum ? Sei doch froh, dass AS dich darauf hinweist .


d)
Womit wir dann in diesem Zusammenhang direkt zum einem weiteren wesentlichen Punkt kommen

Danke für den Link. Leider alles auf Englisch und ich verstehe nicht viel.
Ohne fundierte Englisch - Kenntnisse wirst du keine Dokumentation verstehen und auch keine Compiler-Hinweise interpretieren können (s.o.) , die essentiell dazu beitragen , eine App zu erstellen.

e)
Ein großer Teil der Entwicklungszeit geht i.d.R für das (genaue) Lesen von englischen Dokumentationen drauf.
Das setzt man dann auf die fundierten Kenntnisse um , wie ein mobiles System funktioniert (z.b. Threadhandling, GarbageCollector, LifeCycle Eigenschaften usw.) und berücksichtigt dann noch zu Schluss die verschiedenen Versionen und Hersteller.

...... bevor es dann eine "einigermaßen" lauffähige App in der ersten Alpha-Phase wird.

Auch wenn man schon fundierte Kenntnisse in der OOP Programmierung (z.b. unter Java) haben sollte, so macht das nur einen Promilleanteil der eigentlichen Entwicklungsarbeit für ein mobiles System aus.
 
Zuletzt bearbeitet:
Guten Morgen,

vielen Dank für die Antworten.

Ich lese schon die Antworten durch. Komme damit aber nur nicht klar.

Wie gesagt, ich habe ja das Buch. Leider scheint das aber eine ältere (?) AS-Version zu sein. Jedenfalls stimmen die Masken nicht überein.

Wenn es keine Fehlermeldung war, wieso läuft dann die App nicht auf dem Handy?

Das AS ist ja genauso komplex wie mein Visual Studio 2019.
Verstehe jetzt echt nicht was ich machen muß, um das Beispiel zu starten.

BeI den Projektvorlagen habe ich mich vertan. Bei der von Dir vorgeschlagenen Vorlage kann ich die Sprache auf Java ändern.

LG Heiko

PS: Ich gucke schon nach YouTube-Videos, auch auf Englisch, aber wie ich bei der jetzigen AS-Version vorgehen muß, habe ich noch nicht gefunden.
 
Ich gucke schon nach YouTube-Videos, auch auf Englisch, aber wie ich bei der jetzigen AS-Version vorgehen muß, habe ich noch nicht gefunden.
Wirst du auch nicht finden , auch nicht bei ChatGPT - diese Einträge sind schlichtweg zu "alt" .
Das kannst du dir maximal als "Richtung" mal anschauen - Auch z.b. Stackoverflow - da besonders vorsichtig sein.
Vieles , was ca. 3-4 Monate alt ist, solltest Du mit Vorsicht genießen.

Deshalb ist es unerlässlich, sich so ein Basis-Polster an Wissen anzueignen , damit man die Änderungen auch versteht .


Denn - wie ich oben schon bemerkt habe : Es ändert sich quasi täglich etwas und man muss da wirklich auf Zack sein .
Jeder unserer Apps muss spätestens alle drei Monate geupdated werden - das ist leider mittlerweile eine Vollzeitbeschäftigung . Und Google ist da gnadenlos - friss oder stirb.

Es kann z.b. gut sein , dass du heute ein Projekt erstellst und du es morgen ohne größeren Aufwand nicht mehr compiliert bekommst.
 
Zuletzt bearbeitet:
Tipp die "Empty Activity" die du gewäht hast gibet es nur in Kotlin.
benutze "Empty Views Activity" da kannst du auch Java einstellen .

Fange also nochmal ein neues Projekt mit "Empty Views Activity" an
 
Zuletzt bearbeitet:
Moin zusammen.

Fange also nochmal ein neues Projekt mit "Empty Views Activity" an
Danke, habe es mit dieser Projektvorlage probiert. Ging auch nicht.

Dann aber build.gradle.kts geändert. Habe jetzt u. a. das:
compileSdk = 34
minSdk = 27
targetSdk = 33.

Damit konnte ich endlich die App auf meinem Handy laufen lassen.

Danke Euch.


Jetzt habe ich nur noch das Problem das für AS mein Prozessor (Intel Core i3) zu langsam ist und zu wenig RAM hat.
Es werden mind. 8 GB benötigt. Empfohlen sind 16 GB und mehr. Ich habe nur 4 GB.

LG
Heiko
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:
Moin zusammen.

Mit der Anleitung hat es nicht geklappt. Sieht bei mir im AS ganz anders aus.

Aber ich konnte Google Treiber installieren. Und ich weiß nicht wie, aber ich habe das Hallo2 auf meinem Handy. Kann ich auch starten.

LG Heiko
 
Mit der Anleitung hat es nicht geklappt. Sieht bei mir im AS ganz anders aus.

Die Anleitung ist auch mindestens 9 !! Jahre alt - Also kein Wunder
Und nein , man benötigt keine zusätzlichen Treiber , zumal du eh schon Windows 10 benutzt.


Kann ich auch starten.
Prima
 
Zuletzt bearbeitet:
Moin.

Neee, ich benutze Win 10 Pro.

Aber wie gesagt zu langsamer Prozessor und zu wenig RAM.
Dauert immer ewig bis es einen Schritt weitergeht.

Viele liebe Grüße
Heiko
 

Ähnliche Themen

M
Antworten
3
Aufrufe
173
moin
M
5
Antworten
0
Aufrufe
1.155
586920
5
SaniMatthias
Antworten
19
Aufrufe
963
swa00
swa00
Zurück
Oben Unten