facebook twitter hatena line google mixi email

「Android/開発環境/AndroidStudio/その他」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(debug署名付きapkの作成方法)
(以下admobのエラーが出る場合)
(同じ利用者による、間の13版が非表示)
行41: 行41:
 
==Error:Execution failed for task ':app:dexDebug'. UNEXPECTED TOP-LEVEL EXCEPTION:のエラーの場合==
 
==Error:Execution failed for task ':app:dexDebug'. UNEXPECTED TOP-LEVEL EXCEPTION:のエラーの場合==
 
libs内のandroid-support-v4.jarなどがライブラリと被っているので片方を削除
 
libs内のandroid-support-v4.jarなどがライブラリと被っているので片方を削除
 
==apkの作成方法==
 
#メインメニューのbuild/Generate_apkから作成
 
 
==debug署名付きapkの作成方法==
 
#以下存在を確認
 
$ ls  ~/.android/debug.keystore
 
/Users/[user]/.android/debug.keystore
 
 
debug.keystoreは以下の通りとなっている
 
Keystore name debug.keystore
 
Keystore password android
 
Key alias androiddebugkey
 
Key password android
 
CN CN=Android Debug,O=Android,C=US
 
 
#メインメニューのbuild/Generate_apkから作成
 
#上記keyを入力する
 
#検証versionのv1とv2にチェックを入れる
 
  
 
==メソッドが65536件を以上のときのエラー==
 
==メソッドが65536件を以上のときのエラー==
 +
メソッドが65536件を以上のときのエラー
 
  Execution failed for task ':app:transformClassesWithDexForDebug'.
 
  Execution failed for task ':app:transformClassesWithDexForDebug'.
 
  > com.android.build.api.transform.TransformException:
 
  > com.android.build.api.transform.TransformException:
行89: 行71:
 
  ls ~/Library/Android/sdk/extras/android/m2repository/com/android/support/multidex/1.0.3/multidex-1.0.3.jar
 
  ls ~/Library/Android/sdk/extras/android/m2repository/com/android/support/multidex/1.0.3/multidex-1.0.3.jar
 
なければsdktoolのandroidSupportRegistryをアンインストールしてインストールする。
 
なければsdktoolのandroidSupportRegistryをアンインストールしてインストールする。
 +
 +
multidexのjarやaarをDLしたい場合はこちらから。https://mvnrepository.com/artifact/com.android.support/multidex/1.0.3
  
 
参考:http://qiita.com/furu8ma/items/6cb4b08c423da6a74299
 
参考:http://qiita.com/furu8ma/items/6cb4b08c423da6a74299
行117: 行101:
 
build.gradleのSdkVersionの数字を変更して、戻して
 
build.gradleのSdkVersionの数字を変更して、戻して
 
build.gradleのsyncをすれば良い。
 
build.gradleのsyncをすれば良い。
 +
 +
==play-services-basementエラー==
 +
googleを先に持ってくると改善する模様。googleがなければjcenter()の上にgoogle()を追加する
 +
repositories {
 +
    google()
 +
    jcenter()
 +
    maven { url 'ttps://maven.fabric.io/public' }
 +
}
 +
 +
http://matsudamper.hatenablog.com/entry/2018/07/05/013810
 +
 +
==全置換==
 +
intellij系すべてで使えると思われる
 +
 +
command+shift+rで全置換画面を開く
 +
===改行を削除===
 +
regexをonへ
 +
 +
置換前
 +
\n
 +
 +
===```の前のタブを消す===
 +
regexをonへ
 +
 +
置換前
 +
\t\`\`\`
 +
 +
置換後
 +
\`\`\`
 +
 +
==Failed to resolve: com.google.android.gms:play-services-basement:[15.0.1,16.0.0)==
 +
File/Other Settings/Default Settings/Build, Execution, Deployment/Build Tools/Gradle/And uncheck Offline work
 +
 +
参考:https://stackoverflow.com/questions/50791632/could-not-find-any-version-that-matches-com-google-android-gmsplay-services-bas/50792337
 +
 +
==Could not resolve com.google.android.gms:play-services-ads:18.2.0."エラーが出る場合==
 +
#AndroidStudio3.2だとmavenのdownloadがうまくいかなくなってた(2019/9/10現在)
 +
#AndroidStudio3.5へ更新したところうまくいった。
 +
 +
==以下admobのエラーが出る場合==
 +
<pre>
 +
E/AndroidRuntime: FATAL EXCEPTION: main
 +
    Process: jp.co.geniee.gnadsamplenativebanner, PID: 23005
 +
    java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
 +
   
 +
    ******************************************************************************
 +
    * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
 +
    * should follow the instructions here:                                      *
 +
    * https://googlemobileadssdk.page.link/admob-android-update-manifest        *
 +
    * to add a valid App ID inside the AndroidManifest.                          *
 +
    * Google Ad Manager publishers should follow instructions here:              *
 +
    * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.  *
 +
    ******************************************************************************
 +
        at android.app.ActivityThread.installProvider(ActivityThread.java:4793)
 +
</pre>
 +
AndroidManifest.xmlに以下を追加
 +
<pre>
 +
<meta-data
 +
            android:name="com.google.android.gms.ads.AD_MANAGER_APP"
 +
            android:value="true"/>
 +
</pre>

2019年9月10日 (火) 16:21時点における版

行番号追加

preference/Editor/General/Appearance/show line numbersにチェック

logcatを見る

  1. フッターのAndroidを選択
  2. adblogタブを選択
  3. 右側の入れ替えアイコンを押下
  4. Device|Logcatを選択

logcatでLevelフィルタを使う

adb logcat *:E # error以上のみ
adb logcat *:W # warning以上のみ
adb logcat *:I # info以上のみ
adb logcat *:D # debug以上のみ
adb logcat *:V # 全部

logcatでTAGフィルタを使う

adb logcat -s TAG1

logcatで文字列フィルタを使う

adb logcat *:I | grep hogehoge

エラーメッセージを見る

  1. フッターのAndroidを選択
  2. adblogタブを選択
  3. 右側の入れ替えアイコンを押下
  4. Device|Logcatを選択
  5. LogLevelのフィルターでErrorを選択

default activity not found

サンプルのSettingActivityを生成した所、上のエラーが出たが、 manifest.xmlに以下が記述されていないだけだった。activityタグ内に<intent-filter>を追加する。

<activity android:name=".SettingsActivity"
           android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Error:Execution failed for task ':app:dexDebug'. UNEXPECTED TOP-LEVEL EXCEPTION:のエラーの場合

libs内のandroid-support-v4.jarなどがライブラリと被っているので片方を削除

メソッドが65536件を以上のときのエラー

メソッドが65536件を以上のときのエラー

Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException:
com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

multiDexDenabledを追加する

build.gradle修正

android {
   compileSdkVersion 21
   buildToolsVersion "21.1.0"
   defaultConfig {
       minSdkVersion 14
       targetSdkVersion 21
       // Enabling multidex support.
       multiDexEnabled true
   }
}
dependencies {
 compile 'com.android.support:multidex:1.0.0'
}

対応後build cleanをする

multidexの読み込みに失敗するとき

multidexが適切にインストールされているか確認する

ls ~/Library/Android/sdk/extras/android/m2repository/com/android/support/multidex/1.0.3/multidex-1.0.3.jar

なければsdktoolのandroidSupportRegistryをアンインストールしてインストールする。

multidexのjarやaarをDLしたい場合はこちらから。https://mvnrepository.com/artifact/com.android.support/multidex/1.0.3

参考:http://qiita.com/furu8ma/items/6cb4b08c423da6a74299

参考:https://developer.android.com/studio/build/multidex.html?hl=ja

Minimum supported Gradle version is 3.3エラーが出る場合

gradle/wrapper/gradle-wrapper.propertiesの

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

に書き換える

preference/plugins/AndroidNDKSupportにチェックを入れる

:app:transformClassesWithJarMergingForDebugエラー

build cleanをする

import文自動挿入

不明classを選択してoption(alt)+return

使用メモリを確認

View/Tool Windows/Android Monitor/左上のMonitorsタブを選択

  • allocated 割り当てられたメモリ
  • free 未使用メモリ

please select android sdkエラーが出る場合

build.gradleのSdkVersionの数字を変更して、戻して build.gradleのsyncをすれば良い。

play-services-basementエラー

googleを先に持ってくると改善する模様。googleがなければjcenter()の上にgoogle()を追加する

repositories {
    google()
    jcenter()
    maven { url 'ttps://maven.fabric.io/public' }
}

http://matsudamper.hatenablog.com/entry/2018/07/05/013810

全置換

intellij系すべてで使えると思われる

command+shift+rで全置換画面を開く

改行を削除

regexをonへ

置換前

\n

```の前のタブを消す

regexをonへ

置換前

\t\`\`\`

置換後

\`\`\`

Failed to resolve: com.google.android.gms:play-services-basement:[15.0.1,16.0.0)

File/Other Settings/Default Settings/Build, Execution, Deployment/Build Tools/Gradle/And uncheck Offline work

参考:https://stackoverflow.com/questions/50791632/could-not-find-any-version-that-matches-com-google-android-gmsplay-services-bas/50792337

Could not resolve com.google.android.gms:play-services-ads:18.2.0."エラーが出る場合

  1. AndroidStudio3.2だとmavenのdownloadがうまくいかなくなってた(2019/9/10現在)
  2. AndroidStudio3.5へ更新したところうまくいった。

以下admobのエラーが出る場合

 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.co.geniee.gnadsamplenativebanner, PID: 23005
    java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException: 
    
    ******************************************************************************
    * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
    * should follow the instructions here:                                       *
    * https://googlemobileadssdk.page.link/admob-android-update-manifest         *
    * to add a valid App ID inside the AndroidManifest.                          *
    * Google Ad Manager publishers should follow instructions here:              *
    * https://googlemobileadssdk.page.link/ad-manager-android-update-manifest.   *
    ******************************************************************************
        at android.app.ActivityThread.installProvider(ActivityThread.java:4793)

AndroidManifest.xmlに以下を追加

<meta-data
            android:name="com.google.android.gms.ads.AD_MANAGER_APP"
            android:value="true"/>