Visual Studio Android Compiler .apk

  • 89 Antworten
  • Letztes Antwortdatum
@jogimuc
Ja da hast du recht
 
Noch mal etwas nebenbei. @swa00 sagte dir das es nicht möglich ist mit dem emulator ein Screenshot zu machen.

Also lasse erstmal das mit dem emulator.
Verbinde dein Handy mit den usb Kabel mit deinem Rechner.
Wenn du USBdebbug am handy an hast und auch die usb Treiber auf deimen rechner hast. Wirst du dein handy in Android studio sehen. Und kannst auch darauf testen.

Versuche es einfach mal.
Beiträge automatisch zusammengeführt:

Mal eine einfache Frage unter welcher Windows Version arbeitest du?
Erst ab Windows 10 version 18.3 wird das hyper-v unterstützt. Denn ab da gibt es WHPX.
 
Zuletzt bearbeitet:
@jogimuc
Ich arbeite unter Windows 7
 
Da Deshalb geht die Hardwarebeschleunigung für den android Studios emulator nicht.
Wie das bei Genymotion ist kann ich nicht sagen.

In allen Google Dokus steht das die amd beschleunigung erst ab win 10 Version April 2018 unterstützt wird.

Wie das bei Genymotion ist weis ich nicht ob der das amd-v unterstützt.

Also benutze dein Handy
Beiträge automatisch zusammengeführt:

Bin mir bei deiner betagten cpu auch nicht sicher ob das mit win 10 vehen würde. Ich denke nein.
Das ist eine der ersten CPU mit AMD-V
Bei der nechsten cpu Generation sieht das anders aus die solte das hyper-v richtig unterstützen deine nicht.

Kauf dir einen Intel.
Vieleicht bringt der Weihnachtsmann
einen.
 
Zuletzt bearbeitet:
Jetzt habe ich versucht von meinen Samsung Galaxy A5 (2017) zu Debuggen. Ich habe USB Treiber installiert, neu gestartet und adb neu gestartet ohne Erfolg. Der Android Geräte Monitor zeigt mein Gerät als unbekannt an. Ich habe bereits an meinen Smartphone USB Debugging aktiviert. Und im Geräte Manager von Windows 7 ist mein Gerät zu erkennen. Als ich Debugging gestartet habe, kommt nach kurzem laden die Meldung: Das Debuggen wurde abgebrochen. Erstellen Sie einen Android Emulator, um die Anwendung zu debuggen.
 
Zuletzt bearbeitet:
Ziehe das Handy nochmal ab schalte das usbdebugging am Handy aus und wider an. Lösche den Rechner im Handy den du freigeben hast. Stecke das Handy wider an nun solche dich das Handy fragen ob du die Verbindung zulassen willst.
Starte das Handy auch mal neu wenn es nicht klappen will.
 
  • Danke
Reaktionen: Andy12345678
@jogimuc
Ich habe das mehrfach versucht, leider ohne Erfolg. Habe auch Visual Studio mehrmals neu geöffnet. Ich weiß leider nicht woran das liegt. Habe zum testen ein mobiles Projekt genommen was dort schon drin ist, Xamarin Projekt
 
Ich habe USB Treiber installiert, neu gestartet und adb neu gestartet ohne Erfolg. Der Android Geräte Monitor zeigt mein Gerät als unbekannt an.
Habe auch Visual Studio mehrmals neu geöffnet. Ich weiß leider nicht woran das liegt. Habe zum testen ein mobiles Projekt genommen was dort schon drin ist, Xamarin Projekt

Du benötigst kein "manuelles" Starten von ADB - lediglich die richtigen USB-Treiber .
Dann macht dir AS alles von selbst.

Und nochmal an dieser Stelle : VS ist für solch rudimentären Dinge erst mal völlig falsch für Dich.
Ich weis nicht, wie oft wir Dir das noch schreiben müssen.
Deine "Probleme" ziehen sich schon über 4 Seiten und hälst zahlreiche Leute in deren Freizeit auf Trap, weil du einfach
nur mit dem Kopf durch die Wand möchtest.

Du kommunizierst nämlich hier mit Personen, die tag täglich teilweise hauptberuflich damit arbeiten.
Wenn du das nicht umsetzen möchtest, was wir dir schreiben , dann darfst du dich auch nicht wundern,
irgendwann mal keine Antwort mehr zu bekommen.

Installiere dir AS, dort ist alles dabei und du musst nichts manuell konfigurieren.
Erst dann , wenn die Basis-Installation funktioniert , kannst du mit exotischen VS Installationen beginnen.

Zur Info :
- VS ist eine für Windows-Applikationen ausgerichtete Developer-Plattform.
- AS für Android Devices
- Apple für iOS devices.

Ich habe alle parallel & hauptberuflich im Einsatz , würde aber niemals auf die Idee kommen,eine Android App mit
VS zu realisieren. Das wäre Murks hoch drei.

Prozessor:AMD® E-Serie APU E1-1200 Prozessor 2x 1.40 GHz
AMD Dual-Core, 4GB, 500GB

Und auch hier nochmal : Zu schwach und falsch dimensioniert
Du kannst nicht mit einem Gummihammer Mauern einreißen - Dazu brauchst du vernünftiges Werkzeug.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Andy12345678, melnik und jogimuc
Genau das haben wir und auch ich nun zur genüge gesagt.
Wenn du nicht anfängst android studio zu benutzen, wird es hier keine hilfe mehr geben.
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: swa00 - Grund: swa00
  • Danke
Reaktionen: Andy12345678, melnik und swa00
@jogimuc
Okay..
 
Schön, dass du es nun langsam einsiehst.

Wenn du nun auch noch bei helfenden Antworten den Danke Button drückt wird es wohl auch weiterhin Hilfe geben.
 
  • Danke
Reaktionen: Andy12345678 und swa00
@jogmuc Dieses "Okey" ist nur fehlenden Argumenten, dem Unvermögen einer selbst nur relativ haltbaren Erwiderung geschuldet, nicht wirklicher Einsicht.
 
  • Danke
Reaktionen: swa00
Warten wir mal ab ..... ich denke, es trifft jedoch den Kern :)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: jogimuc und melnik
Danke für euren Tipp. Android Studio hat mir schon sehr viel weiter geholfen. Debudding geht Problemlos.
Ich habe bereits dies mit dem Screenshot hin bekommen. Nach jedem Drücken auf dem Button speichert er eine png Datei mit dem Namen des aktuellen Datums ab. Jetzt meine Frage:
Wie kann man mit dem Countdown Timer einstellen, das er alle 5 Minuten einen Screenshot automatisch macht? Habe schon viel versucht und rum getestet...
 
Hallo
Ist ja erstmal schön zu hören das du nun auf Android Studio ungestiegen bist und es auch läuft.

Was genau hast du denn versucht ? Ohne Code ist es hier schlecht was zu sagen.
Wie man den Timer in Java benutzt und auch wie man ihn Unter Android benutzt wird in vielen Tutorials ausgiebig erklärt.
Das ganze setzt natürlich auch etwas Java Kenntnisse voraus.

Doku von Google
CountDownTimer | Android Developers

Eigentlich brauchst du keinen CountDown sondern nur einen Timer. eine Benachrichtigung zwischen durch brauchst du ja nicht.
 
Zuletzt bearbeitet:
Also das ist mein Code in Android Studio:

Javascript:
package radefffactory.com;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.Manifest;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;

import android.os.CountDownTimer;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Magnifier;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileOutputStream;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

    Button button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Speichergenehmigung anfordern
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1000);
        } else {
            // im Moment nichts tun
        }

        button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
                Bitmap bitmap = getScreenShot(rootView);
                store(bitmap, "ScreenShot.png");

            }
        });
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if (requestCode == 1000) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(this, "Permission granted!", Toast.LENGTH_SHORT).show();
                // im Moment nichts tun
            } else {
                // Wenn die Erlaubnis nicht erteilt wird, beenden Sie die App
                Toast.makeText(this, "Permission not granted!", Toast.LENGTH_SHORT).show();
                finish();
            }
        }
    }


    // Holen Sie sich einen Screenshot der App
    public static Bitmap getScreenShot(View view) {
        View screenView = view.getRootView();
        screenView.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
        screenView.setDrawingCacheEnabled(false);
        return bitmap;
    }


    // Speichern Sie das Bild auf dem Gerät
        TextView textview;
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss", Locale.getDefault());
        String currentDateandTime = sdf.format(new Date());

        public void store (Bitmap bm, String fileName){
            String dirPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download";
            File dir = new File(dirPath);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            File file = new File(dirPath, currentDateandTime + ".png");
            try {
                FileOutputStream fos = new FileOutputStream(file);
                bm.compress(Bitmap.CompressFormat.PNG, 100, fos);
                fos.flush();
                fos.close();
                Toast.makeText(this, "Gespeichert!", Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(this, "Fehlgeschlagen!", Toast.LENGTH_SHORT).show();
            }


    }

}

Wenn ich diese App öffne, möchte ich gerne dann sofort einen Screenshot haben und nicht erst auf dem Button drücken. Ich habe das mit dem Button erst mal am anfang gemacht. Ich habe schon versucht diese Berechtigungen, die auf dem Button laufen ganz oben auf MainActivy anstatt dem Button zu ändern, aber leider klappt das nicht.
 
Schön wie und wo hast du deinen Timer gesetzt?

Ich glaube du hast nicht verstanden was in Java ein Listner ist.
Alles was in der onClickmethode ist müsste dann in der listner Methode vom Timer machen.

Da du von Berechtigungen spricht denke ich fange erstmal an Java zulernen.
Mit Berechtigungen hat das nichts zu tun.

Ich habe schon versucht diese Berechtigungen, die auf dem Button laufen ganz oben auf MainActivy
Die ganze Klasse ist die Mainactivity.
Ich glaube du weist nicht mal was einne Klasse in Java ist.

Im KassenRumpf nur Deklarationen von Variablen keinen Code zumindest ist das bei Android so.

Der Timer gehört wenn in die onCreate.

Android Livecycle!

Beispiel für einen einfachen timer in Android
Timer simple TimerTask Java Android example | Software and Source Code for Developers
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: melnik
So habe extra für dich deinen Code. Etwas angepasst. Sollte gehen wurde nicht getestet.
Da du im Timer (run Methode) in einen anderen Thread bist kannst du nicht auf den UI Zugreifen.

Deshalb kein Toast. Denn das ist eine Bildschirm Ausgabe auf den UI.

Wie du das mittels runOnUiThread machen kannst. Findest du nun selber raus.

Habe dir das auch geändert damit du auch beim ersten Start der App die Permissen hast.


Google Docu Timer.
Timer | Android Developers

Code:
public class MainActivity extends AppCompatActivity {

    Button button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Speichergenehmigung anfordern
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1000);
        } else {
            init();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if (requestCode == 1000) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(this, "Permission granted!", Toast.LENGTH_SHORT).show();
                init();
                // im Moment nichts tun
            } else {
                // Wenn die Erlaubnis nicht erteilt wird, beenden Sie die App
                Toast.makeText(this, "Permission not granted!", Toast.LENGTH_SHORT).show();
                finish();
            }
        }
    }

   
    void  init(){
        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
                Bitmap bitmap = getScreenShot(rootView);
                store(bitmap, "ScreenShot.png");

            }
        });

        MyTimerTask myTask = new MyTimerTask();
        Timer myTimer = new Timer();
        myTimer.schedule(myTask, 1000, 1000*60*5);
   
    }

    // Holen Sie sich einen Screenshot der App
    public static Bitmap getScreenShot(View view) {
        View screenView = view.getRootView();
        screenView.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
        screenView.setDrawingCacheEnabled(false);
        return bitmap;
    }


    // Speichern Sie das Bild auf dem Gerät
    TextView textview;
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss", Locale.getDefault());
    String currentDateandTime = sdf.format(new Date());

    public void store (Bitmap bm, String fileName){
        String dirPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download";
        File dir = new File(dirPath);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        File file = new File(dirPath, currentDateandTime + ".png");
        try {
            FileOutputStream fos = new FileOutputStream(file);
            bm.compress(Bitmap.CompressFormat.PNG, 100, fos);
            fos.flush();
            fos.close();
            //Toast.makeText(this, "Gespeichert!", Toast.LENGTH_SHORT).show();
            // in Komentar das keine ausgabe auf UI Thrrad im Thread

        } catch (Exception e) {
            e.printStackTrace();
            //Toast.makeText(this, "Fehlgeschlagen!", Toast.LENGTH_SHORT).show();
            // in Komentar das keine ausgabe auf UI Thrrad im Thread
        }
    }

    class MyTimerTask extends TimerTask {
       @Override
        public void run() {
            View rootView = getWindow().getDecorView().findViewById(android.R.id.content);
            Bitmap bitmap = getScreenShot(rootView);
            store(bitmap, "ScreenShot.png");
        }
    }

}
 
Zuletzt bearbeitet:
@jogimuc

Danke, das werde ich mal testen
 
Ok ich hoffe du verstehst was und warum ich manches geändert habe.
Laufen sollte der Code.

Mal eine Frage hast du den Code selber geschrieben oder nur aus einem Toturial kopiert. Bitte sei ehrlich.


Um die Grundlagen von Java OOP wirst du nicht drum rumkommen.

Also besorge dir ein Anfänger Buch.

Schaue mal meinen ersten Links zum Thema lernnen Android Programmierung.

So nun viel Erfolg.
 

Ähnliche Themen

M
Antworten
9
Aufrufe
789
mkuz24
M
A
Antworten
5
Aufrufe
692
swa00
swa00
T
Antworten
0
Aufrufe
519
tomasherrmann
T
M
Antworten
21
Aufrufe
1.360
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
964
migi01
migi01
Zurück
Oben Unten