[JAVA] Eine Reihe von Problemen in der Android Studio-Entwicklung

Es ist eine Erinnerung an die Fehler, die ich bisher hatte und "Ich überprüfe dies jedes Mal ..." Sofern nicht anders angegeben, Android Studio 3.0.1 + Java 1.8.0

Gradle Build Edition

Minimum supported Gradle version is 4.1. Current version is 2.14.1. https://qiita.com/izuki_y/items/26e5735a26a3494b4833#errorminimum-supported-gradle-version-is Es gibt keine Version von gradle. Wenn Sie es also geben, wird es gelöst

Error: '.' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore https://teratail.com/questions/130852 Der Dateiname ist ein ungültiger Fehler Aus irgendeinem Grund gab es vor der Erweiterung zwei `` `.```, also beheben Sie es

Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 14 declared in library [com.google.android.gms:play-services:11.0.4] https://qiita.com/naotsune/items/8a45fb5436b50d3fef56 MinSdkVersion-Fehler auslösen Erhöhen und lösen

Error:Execution failed for task ':approcessDebugGoogleServices'. Volltext ⬇︎

Error:Execution failed for task ':approcessDebugGoogleServices'.
>Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 12.0.1.

Tritt auf, wenn ein FCM-Paket mit der Android Studio-Funktion hinzugefügt wird Wenn Sie genau hinschauen, können Sie die App build.gradle sehen

implementation 'com.google.firebase:firebase-messaging:11.0.4'

War ein Fehler. (Der Teil wird automatisch von Android Studio eingefügt) Wie Sie sagen, wird es gelöst, wenn es mit 12.0.1 ausgerichtet ist

Error:Unable to find method 'org.gradle.api.artifacts.Configuration.defaultDependencies Volltext ⬇︎

Error:Unable to find method 'org.gradle.api.artifacts.Configuration.defaultDependencies(Lorg/gradle/api/Action;)Lorg/gradle/api/artifacts/Configuration;'.
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

Versuchen Sie, herunterzuladen, wie Ihnen gesagt wird

Ich bekomme den gleichen Fehler >https://stackoverflow.com/questions/37655814/gradle-sync-failed-unable-to-find-method https://android.benigumo.com/20180121/build-environment-stable/ Ich werde die Version von build.gradle als Referenz geben (2.2.1 => 5.4.1) > Beseitigung

Error:No such property: GradleVersion for class: JetGradlePlugin

Nachtrag (20.02.2020)

https://cpoint-lab.co.jp/article/201908/11313/ Demnach scheint die Ursache darin zu liegen, dass die Version von Android Studio niedriger ist als die Version von Gradle. Damit

--Updated Android Studio

Es scheint, dass beide das Problem lösen werden. Ist es besser zu aktualisieren, wenn keine besonderen Umstände vorliegen?

Vorheriger Arbeitsbericht

https://stackoverflow.com/questions/53600179/errorno-such-property-gradleversion-for-class-jetgradleplugin Es scheint, dass ein Herabstufen dieses Mal das Problem lösen wird ... 5.4.1 => 4.10.1

Es wird gesagt, dass Werkzeuge nicht gefunden werden können >https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle Beim Betrachten der Korrespondenztabelle von

- com.android.tools.build:gradle:3.4.1
+ com.android.tools.build:gradle:3.3.0

Zu > Es wird gesagt, dass es noch nicht gefunden werden kann >https://stackoverflow.com/questions/46316213/errorcould-not-find-com-android-tools-buildgradle3-3-issue-raise-after-upgra Google () wurde zu build.gradle von PJ root als Referenz hinzugefügt > Vorerst

Error:Removing unused resources requires unused code shrinking to be turned on. https://stackoverflow.com/questions/52310841/removing-unused-resources-requires-unused-code-shrinking-to-be-turned-on von app.gradle

- minifyEnabled false
+ minifyEnabled true

Wenn Sie es einstellen

Kompilieren

Error: Your project contains C++ files but it is not using a supported native build system. Tritt in PJ mit cpp auf. Sie müssen den cpp-Compiler einschließen. Ursprünglich wird cmake empfohlen, aber aufgrund eines Fehlers abgebrochen ...

Nach der Installation von NDK https://qiita.com/kenmasu/items/598496840eef775db142 Bearbeiten Sie build.gradle als Referenz

Error:(177, 0) *** Android NDK: APP_STL stlport_static is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information.    .  Stop.

Kam heraus https://github.com/google/ExoPlayer/issues/5052 Die Referenz von `APP_STL``` von Application.mk wurde in `` `APP_STL: = c ++ _ shared geändert > Beseitigung

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. Ein Fehler, der auftritt, wenn mehrere Abhängigkeiten in Konflikt stehen. Ich bin schon oft darauf gestoßen, also hier ein Beispiel

https://qiita.com/Capotasto/items/ad1824722da7c3d9da97 Suchen Sie vorerst nach dem Ort, an dem Sie die im Fehler in `./gradlew app: dependencies``` genannte Bibliothek verwenden Dieses Mal wurde ich wütend auf Mehrere Dex-Dateien definieren Landroid / support / v4 / view / MotionEventCompat; ``

~~~Unterlassung~~~
+--- com.google.android.gms:play-services-base:12.0.1
|    +--- com.google.android.gms:play-services-basement:12.0.1
|    |    +--- com.android.support:support-v4:26.1.0
~~~Unterlassung~~~

Demnach scheint es, dass "com.google.android.gms: play-services-base: 12.0.1" anruft, also

compile ('com.google.android.gms:play-services-base:12.0.1') {
    exclude group: 'com.android.support', module: 'support-v4'
}

Ich werde es aus der Abhängigkeit entfernen. Sie sollten in der Lage sein, damit zu gehen

org.gradle.tooling.BuildException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.10.2-all.zip'. Der ganze Satz war sehr lang, daher werden nur die Teile extrahiert, die relevant erscheinen

Error:Internal error:
org.gradle.tooling.BuildException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.10.2-all.zip'.
Caused by: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':app:javaPreCompileDebug'.
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:javaPreCompileDebug'.Caused by: java.lang.RuntimeException: Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain annotation processor.  Please add them to the annotationProcessor configuration.
  - butterknife-6.1.0.jar (com.jakewharton:butterknife:6.1.0)
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior.  Note that this option is deprecated and will be removed in the future.
See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.

https://stackoverflow.com/questions/47087730/why-do-i-have-problems-whith-com-jakewhartonbutterknife7-0-1-in-android-stud Ändern Sie app / build.gradle als Referenz

android {
    ~~~~~Unterlassung~~~~~

    defaultConfig {
        ~~~~~Unterlassung~~~~~
        //Postscript-Teil von hier
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath true
            }
        }
        //Ergänzungsteil bisher
    }
    ~~~~~Unterlassung~~~~~
}

> Beseitigen!

Laufzeitfehler

Die Tastatur startet zum Zeitpunkt des Aktivitätsübergangs ohne Erlaubnis

https://codeday.me/jp/qa/20190205/219782.html https://developer.android.com/reference/android/view/WindowManager.LayoutParams#SOFT_INPUT_STATE_ALWAYS_HIDDEN In der onCreate-Methode der Aktivität, die Sie nicht starten möchten

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Wird zusätzlich gelöst

Übrigens kann `` `setSoftInputMode``` das Verhalten der Softtastatur für das angegebene Fenster festlegen.

WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN verhindert, dass die Tastatur bei eingeschaltetem Fokus angehoben wird



## Die Benachrichtigung verschwindet nicht, selbst wenn die Anwendung gestartet wird / Übergang von der Push-Benachrichtigung
 Die Ursache war, dass es überhaupt keinen Prozess gab, um die Benachrichtigung auszuschalten
 In FCM in onMessage

if(prefs.getInt("push_flg", 1)==1){ NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.icon, null, System.currentTimeMillis()); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, splash.class), 0); notification.setLatestEventInfo(this, "Lieblingszeichenfolge", str, contentIntent); mNotificationManager.notify(1, notification); }

 Es sollte wie verarbeitet werden.

#### **`mNotificationManager.notify(1, notification);Das erste Argument von ist die Benachrichtigungs-ID (Typ int).`**
```notify(1, notification);Das erste Argument von ist die Benachrichtigungs-ID (Typ int).

 Geben Sie dies und irgendwo beim Löschen an

//Schalten Sie das Gerät aus, wenn Sie benachrichtigt werden NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.cancel(1);

 OK
 Dieses Mal habe ich es direkt nach dem Start von onCreate auf der oberen Seite installiert.

 Übrigens wurde die obige Methode setLatestEventInfo () veraltet und von API-Level 23 entfernt.
 Es wird empfohlen, NotificationCompat zu verwenden

if(prefs.getInt("push_flg", 1)==1){ NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, splash.class), 0);

      NotificationCompat.Builder mBuilder =
              new NotificationCompat.Builder(this)
              .setSmallIcon(R.drawable.icon)          //Symbol zur Benachrichtigung
              .setContentTitle("Benachrichtigungstitel")           //Benachrichtigungstitel
              .setContentText(str)                    //Benachrichtigungsstelle
              .setContentIntent(contentIntent);       //Wo soll beim Tippen gewechselt werden?
      
      mNotificationManager.notify(1, mBuilder.build());  //Anmeldung

}

 Ich benutze es so.
 des Weiteren

mBuilder.setAutocancel(true);

 Sie können die Benachrichtigung auch löschen, wenn Sie darauf tippen.
 Sie können auch das obige `` `mNotificationManager.cancel ()` `` verwenden, damit Sie es überall löschen können.

install_failed_no_matching_abis res =- 113
 Tritt auf, wenn versucht wird, auf einem Emulator ausgeführt zu werden
https://stackoverflow.com/questions/36414219/install-failed-no-matching-abis-failed-to-extract-native-libraries-res-113
 Ändern Sie app / build.gradle als Referenz

android { ~~~Unterlassung~~~~

//hinzufügen
splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a', 'x86_64'
        universalApk true
    }
}
~~~Unterlassung~~~~

}

 Gelöst mit
 Übrigens, wenn Sie dies tun, können Unannehmlichkeiten beim Release-Build auftreten. Wenn dies also nicht auf dem tatsächlichen Computer auftritt, müssen Sie die oben genannten Probleme nur im Release-Build entfernen
 Um ehrlich zu sein, es ist ein Ärger, also gibt es einen besseren Weg ...

android.os.NetworkOnMainThreadException
 Fehler beim Überspringen einer bestimmten API

https://shirusu-ni-tarazu.hatenablog.jp/entry/2013/01/20/033030
http://shiro-16.hatenablog.com/entry/2014/03/25/004856
 Gemäß den Spezifikationen von Android Studio 3.x sollten Sie nicht versuchen, über den Haupt-Thread zu kommunizieren
 Das Überspringen von einem anderen Thread wurde behoben

new Thread(new Runnable() { @Override public void run() { //API-Sprungmethode } }).start();

 Gefühl

android studio Only the original thread that created a view hierarchy can touch its views.
 Dies ist das Gegenteil von oben. Wenn Sie versuchen, die Ansicht von einem anderen als dem Hauptthread zu ändern, tritt ein Fehler auf.

 Weil es ein Teil war, der nicht vom Haupt-Thread an der Stelle ausgeführt werden konnte, die mit dem obigen Fehler zusammenhängt
http://accelebiz.hatenablog.com/entry/2016/09/01/061934
 Vermeiden Sie die Verwendung von "handler.post" als Referenz
 Wenn Sie es jedoch bis zu dem Punkt in handler.post einfügen, an dem Sie kommunizieren, tritt diesmal die oben genannte "NetworkOnMainThreadException" auf. Seien Sie also vorsichtig

requestFeature() must be called before adding content
https://stackoverflow.com/questions/4250149/requestfeature-must-be-called-before-adding-content
 Entspricht der Referenz

requestWindowFeature(Window.FEATURE_NO_TITLE);

 Ich habe verwendet, also habe ich dies direkt nach super () verschoben
 > Gelöst, aber möglicherweise versionabhängig. Untersuchung erforderlich

## Das Versionsurteil des Terminals ist seltsam
 Obwohl es Oreo ist, beurteilt es das nicht ...
 Solange ich am Haltepunkt anhalte, finde ich das Ergebnis von "isAtLeast0 ()" seltsam.
https://qiita.com/nukka123/items/60a942d054c17c9610ab
 Wie ich bereits sagte, scheint die Methode selbst einen Fehler zu enthalten
 Versuchen Sie, 26.0.1 anzugeben, das ist das neueste von > 26.0. +
 (Die Version ist
https://dl.google.com/dl/android/maven2/index.html
 Bestätigen mit. )
>`Error:(52, 13) Failed to resolve: com.android.support:support-v4:26.0.1`
>https://qiita.com/meru_h/items/f198a300d41e0c59aea4
 Gleiche Korrespondenz wie
 > Beseitigung

## http Kommunikation schlägt von Android Version 9 fehl
https://backport.net/blog/2018/12/27/how_to_allow_http_on_android_9/
http://blog.riskfinder.co.jp/2016/03/network-security-configuration-android-n.html
 Gemäß dem obigen Artikel wird es abgespielt, wenn Sie mit http von Android 9.0 kommunizieren, aber wenn Sie es ausdrücklich zulassen, wird es bestanden.
 Die folgende Unterstützung wird nicht empfohlen, da die Verwendung von stumpfem https ...
 Diesmal entspricht dies dem Erstellen von NetworkSecurityConfig.xml


#### **`network_security_config.xml`**
```xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">hoge.com</domain>
    </domain-config>
</network-security-config>

> zu androidManifest

   <application
        (Kürzung)
        android:networkSecurityConfig="@xml/network_security_config"
        >

Hinzufügen, überprüfen Sie den Vorgang und beenden Sie den Vorgang

Andere

Logcat kommt nicht heraus

Tritt in Android Studio 2.3 auf Es ist in einer sehr einfachen Weise peinlich, aber ein Hinweis für Selbstdisziplin ...

Nicht, dass es nicht ausgegeben wird, es existiert nicht in der Registerkarte unten und das Fenster selbst kann nicht ausgegeben werden Weil das Fenster einfach nicht erscheint http://aws-mobile-development.hatenablog.com/entry/2016/11/06/065030#2Logcat%E8%A1%A8%E7%A4%BA%E6%96%B9%E6%B3%95 Angezeigt mit. Lösung. Beachten Sie, dass anstelle von "logcat" ein Fenster mit dem Namen "Android Monitor" hinzugefügt wird.

Das Warten, bis das Zielgerät online geschaltet wird, wird weiterhin angezeigt und kann nicht ausgeführt werden

http://b0npu.hatenablog.com/entry/2018/04/07/084709 Versuchen Sie es jetzt mit einem Kaltstart > Es gibt keinen Artikel selbst >https://stackoverflow.com/questions/42757928/waiting-for-target-device-to-come-online-in-android-studio-2-3 Versuchen Sie, die SDK-Tools zu aktualisieren > Keine Änderung

Versuchen Sie es einmal mit einer anderen Version (der Emulator ist derzeit sdk19). 26 gearbeitet > Ich kann es mit 19 nicht noch einmal versuchen Löschen Sie 19 einmal und setzen Sie es erneut ein, um zu sehen Ich habe die Meldung erhalten, dass die Leistung möglicherweise abnimmt, wenn ich sie nicht in x86 einbinde. Daher werde ich versuchen, sie in x86 einzufügen > Endlich verbunden ... Es scheint, dass sich die einzufügende Quelle von anderen Bildern unterscheidet

In einem anderen Fall wurde es durch einen Neustart von Android Studio behoben.

Recommended Posts

Eine Reihe von Problemen in der Android Studio-Entwicklung
Gesichtserkennungs-App mit OpenCV + Android Studio
24 Stunden mit Android-Entwicklung zu kämpfen, Java Optional
Android-Entwicklung app_preparation
Riot (Chat App) Entwicklung (Einstellungen) in Android Studio
Android Studio-Entwicklung zum ersten Mal (für Anfänger)
Kompatibel mit Android 10 (API 29)
Zusammenfassung des Android-Entwicklungslinks
Erfahrene Java-Benutzer beginnen mit der Entwicklung von Android-Apps
Plug-In-Entwicklung mit ImageJ
[Rails] Entwicklung mit MySQL
Vorbereitung der Android-App-Entwicklung 7/15
Hinweise zu Android Studio
Android Studio Teil 3-6 besiegen
Erstellen Sie eine Java-Programmentwicklungsumgebung mit Visual Studio Code
Aktuelle Probleme mit rbenv
Android Studio Teil 1 und Teil 2 besiegen
Android-Entwicklungsreferenzseite
So machen Sie einen Screenshot mit dem Android Studio-Emulator
Verwenden Sie Java, das in Android Studio enthalten ist, um React Native zu erstellen
So erstellen Sie eine App mit Tensorflow mit Android Studio
Erstellen Sie mit Java + Spring eine Web-APP-Entwicklungsumgebung mit Visual Studio Code
Startschuss für die persönliche Entwicklung der Android-App
Einführung in die Android App-Entwicklung
ROS App Entwicklung auf Android
Android-Entwicklung ~ Bildschirmübergang (Absicht) ~
Quelle zur Anzeige des Zeichenarrays mit numberPicker in Android Studio (Java)
Einführung in die Android App-Entwicklung 1 Installieren von JDK und Android Studio für Mac