How to fix “Android N requires the IDE to be running with Java 1.8 or later” on Mac?

Standard

I get this error while I was in layout editor selecting api N for preview, It was so easy to fix,

  1. install jdk1.8
  2. Set “JDK_HOME” and “JAVA_HOME” environment variables.
  3. Edit the file “/Applications/Android Studio.app/Contents/Info.plist"
  4. Look for “JVMVersion”
  5. add “1.8*,1.8+” to it:
...
<key>JVMVersion</key>
<string>1.8*,1.8+</string>
...

Now restart your “Android Studio”

How to setup CircleCI environment JAVA7_HOME, JAVA6_HOME for RetroLambda

Standard

Using retrolambda in Android application being built using circleci as continuous integration cause some issues:

> Building 10%When running gradle with java 8, you must set the path to the old jdk, either with property retrolambda.oldJdk or environment variable JAVA5_HOME/JAVA6_HOME/JAVA7_HOME

The problem is you have to configure environment variables for Java_Home, Java7_Home, Java6_Home and etc in circleci virtual machine.

this circle.yml file could help you in this regard:

#
# Build configuration for Circle CI
#

general:
    artifacts:
        - /home/ubuntu/weather_app/app/build/outputs/apk/
        - /usr/lib/jvm/

machine:
    environment:
        ANDROID_HOME: /usr/local/android-sdk-linux
        JAVA6_HOME: /usr/lib/jvm/java-6-openjdk-amd64

    java:
      version: openjdk8

dependencies:
    override:
        - echo y | sudo apt-get update
        - echo y | sudo apt-get install libpango-1.0-0
        - echo y | sudo apt-get install openjdk-6-jre

        - echo y | android update sdk --no-ui --all --filter tools,platform-tools,build-tools-23.0.3,android-23,extra-google-m2repository,extra-google-google_play_services,extra-android-support
        - ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies

test:
    override:
        - (./gradlew assemble):
            timeout: 360

        - (./gradlew test):
            timeout: 360

stetho-timber Library issue with new Timber 4.1.2

Standard

While I was trying to use stetho-timber Library in my Android application I faced this problem:

Error:Module 'com.facebook.stetho:stetho-timber:1.3.1' depends on one or more Android Libraries but is a jar

After inspecting in its codes I found that it uses timber v3.0.1!

Just add this to your build.gradle dependencies tag to exclude timber within the stetho library,
cause it is an old version and conflicts with new one:

dependencies {
    compile ("com.facebook.stetho:stetho-timber:1.3.1") {
        exclude group: "com.jakewharton.timber", module: "timber"
    }
    .
    .
    .

I have recently found Facebook Stetho Library and using it is fantastic, give it a try! :)

How to add Vector image support to old Android versions using new AppCompat?

Standard

Finally we had vector support for all Android versions, 8-)

  • bye bye all different PNG size files in different drawable folders!
  • bye bye FontAwesome!
  1. first of all add these dependencies to your module’s build.gradle:
dependencies {
    .
    .
    .
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:support-vector-drawable:23.3.0'
  1. add this to your android defaultConfig tag in your module’s build.gradle:
android {
    .
    .
    .

    defaultConfig {
        .
        .
        .
        vectorDrawables.useSupportLibrary = true
    }
  1. replace all your ImageView with android.support.v7.widget.AppCompatImageView
    and ImageButton with android.support.v7.widget.AppCompatImageButton in all your project’s xml layouts.

  2. replace all android:src attribute in all ImageView with app:srcCompat.

  3. now import your vector image using New -> “Vector Asset” submenu by right clicking on your drawable folder…

That’s it!!!

Best practise for Logcat colours in Android Studio!

Android Studio Logcat color scheme Preferences
Standard

I know that using solid black colour logcat in Android Studio  is awful !!!

Here is my best practice colour codes that you can use for changing the face of you logcat in Android Studio to make it more useful. go to Android Studio Preferences and search for logcat and save as your own scheme:

Assert9C27B0
Debug2196F3
ErrorF44336
Info4CAF50
WarningFFC107

All colours are picked from material design colour pattern: https://www.google.com/design/spec/style/color.html