32

My gradle file:

apply plugin: 'com.android.application' 

android { 
  useLibrary 'org.apache.http.legacy' 
  compileSdkVersion 23 
  buildToolsVersion "23.0.0" 

  defaultConfig { 
    applicationId "com.skripsi.irwanto.paud" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
  } 

  buildTypes { 
    release { 
      minifyEnabled false 
      proguardFiles getDefaultProauardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
  } 
} 
dependencies { 
 compile fileTree(include: ['*.jar'], dir: 'libs') 
 testCompile 'junit:junit:4.12' 
 compile 'com.android.support:appcompat-v7:23.1.11 
} 

And I get Warning:Unable to find optional library: org.apache.http.legacy

Michael Spitsin
  • 2,539
  • 2
  • 19
  • 29
irwan
  • 329
  • 1
  • 3
  • 3

6 Answers6

79

I guess, the easier way to solve this issue without having to reinstall the SDK is to create a file called optional.json in <sdk-path>\platforms\android-23\optional\ directory with the following content:

[
  {
    "name": "org.apache.http.legacy",
    "jar": "org.apache.http.legacy.jar",
    "manifest": false
  }
]

It solved the problem for me.


EDIT: Information taken from @domoch's answer below on how to locate your SDK location

To Locate your Android SDK's Location

Go to Android Studio Settings -> Appearence & Behavior -> System Settings and look for Android SDK Location. In Windows, it usually would be pointing to C:\Users\<username>\AppData\Local\Android\sdk.

Vite Falcon
  • 6,575
  • 3
  • 30
  • 48
27

I had exactly the same issue. Please check if you have android-sdk-windows\platforms\android-23\optional\optional.json file in place. If not then just reinstall API 23 (remove and install again).

pratt
  • 1,534
  • 14
  • 17
  • This worked for me! From a fresh install of Android Studio with a new SDK this file appeared to be missing. It was still missing after updating all of the API 23 packages. Deleting all the API 23 packages and re-installing worked. – Dave Dec 01 '15 at 19:22
  • Well, I'm not going to question why that file disappeared but thanks! – Daniel Wilson Jul 17 '16 at 10:09
3

Why? If you use Android Studio on Windows then optional.json file should be not only in \Program Files (x86)\...\platforms\android-23\optional\ .

So: go to Android Studio Settings -> Appearence & Behavior -> System Settings and look for Android SDK Location, copy (or create) optional.json in corresponding folder. Or just edit Android SDK Location to \Program Files (x86)\...

In my case Android SDK Location was C:\Users\Usernade\AppData\Local\Android\sdk and there was no optional.json file.

Domoch
  • 81
  • 4
1
  1. Settings -> Appearence & Behavior -> System Settings and look for Android SDK Location

  2. platforms/Android 23/optional/

  3. org.apache.http.legacy jar file is copy and paste your android studio project lib and this jar file gradle compile files('libs/org.apache.http.legacy.jar')

sschale
  • 5,168
  • 3
  • 29
  • 36
0

The error is that the optional.json file is not in the <sdk-path>\platforms\android-23\optional\ folder.

I solved this by the following:

  1. Go to the sdk manager
  2. Select Android Sdk and updates are available in the Appropriate API level.
  3. Just update it.
James K
  • 3,692
  • 1
  • 28
  • 36
0

I know this is pretty ol' one. However, if any1 sees this and wonders what else can be done. Than go and check whether the SDK path is set in Env Vars. Because the path might be using anything like this "$(ANDROID_HOME)".

  • 1
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community May 25 '23 at 07:34