标签: android-api-levels

556
推荐指数
8
解决办法
32万
查看次数

更改API级Android Studio

我想将Android Studio中的最低SDK版本从API 12更改为API 14.我尝试在清单文件中更改它,即

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="18" />
Run Code Online (Sandbox Code Playgroud)

并重建项目,但我仍然得到Android Studio IDE抛出一些错误.我认为我必须在"项目属性"或类似的东西中设置min SDK,以便IDE识别出更改,但我无法在Android Studio中找到这样做的地方.

sdk android android-studio android-api-levels

399
推荐指数
8
解决办法
59万
查看次数

获取当前运行我的应用程序的Android API级别的手机

可能重复:以
编程方式获取设备的Android API级别?

如何让手机的Api级别运行我的应用程序?我确信它很简单,但我无法找到它,因为我所有的搜索都会带来大量的垃圾.

android android-api-levels

192
推荐指数
3
解决办法
20万
查看次数

找不到Android API 23平台的来源(Android Studio 2.0)

Android Studio无法正确地将我重定向到API源.当我点击任何函数时,它会反编译.class文件字节码,而不是从sdk/sources树访问正确的文件. 点击"下载"和"刷新"选项什么都不做.这对于实现监听器来说尤其令人讨厌,因为它从文档中生成函数"不带变量"的标题(即var1,var2等).我已将complie和目标SDK设置为23.我尝试重新安装SDK工具,从canary通道更新AS,使缓存无效但到目前为止没有任何帮助.我切换到API 21,它工作正常.我错过了什么?

编辑 我已经安装了API 23(SDK平台,工具,文档,资源),所以如果你想进行downvote,请发表评论.

编辑 我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.myapp.app"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('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.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile project(':volley')
    compile 'com.jakewharton:butterknife:7.0.1'
}
Run Code Online (Sandbox Code Playgroud)

您可以在下面找到具有相同API 23设置和相同行为的空白项目(没有第三方库)的gradle输出.

Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]

Configuration on demand is an incubating feature.
Incremental …
Run Code Online (Sandbox Code Playgroud)

android-studio android-api-levels

95
推荐指数
3
解决办法
4万
查看次数

68
推荐指数
1
解决办法
7万
查看次数

通过Javascript在浏览器中选择Android版本

我正在构建一个Web应用程序,并希望在3.0版本的Android设备上禁用转换效果.

反正有没有在浏览器中通过Javascript获取Android版本号?如果是这样的话?

javascript browser android android-api-levels

61
推荐指数
4
解决办法
4万
查看次数

为我的Android应用程序选择正确的API级别

我目前有一个针对android 2.3(api等级10)的应用程序,但认为可能使用Android 2.1/2.2或更早版本的人甚至无法在市场上看到该应用程序.

因此,我认为,使用API​​级别3将是最好的使用,但我不知道这是否会也许使我的应用程序工作的某些元素不太好的,大概buggier,因为它实际上使用旧的Android代码.有没有一个很好的方法来找出我应该使用哪个API级别,以及如何将我的应用程序转换为该级别?

android android-api-levels

45
推荐指数
3
解决办法
5万
查看次数

"调用需要API级别23"错误,但是来自API 1的FrameLayout上存在getForeground()

摘要

最后,我发现相关问题,setForeground()错误地标记为需要在ViewGroups扩展上使用API​​ 23 FrameLayout.

问题189041:setForeground()被错误地标记为需要扩展FrameLayout的ViewGroups的API 23(NewApi)

如果您没有扩展FrameLayout,那么文档是错误的,并且需要API 23.

问题186273:View.setForeground错误的API级别

更新的问题

被Commonsware 标记为不能setForeground在ImageView上使用方法并由他回答:

这是一个文档错误.setForeground()存在于API Level 1的FrameLayout上; 它仅适用于API级别23的View.

在我的情况下,fork中的检查没有检测到文档错误,但在集成项目中检测到它,我不明白,无论如何,这回答了我的初始问题.

但这不是同一种情况,这个代码已经扩展了Framelayout并且使用了这个方法,它不是一个ImageView,所以我想这个方法已经在API 23中删除了.它现在没有出现在引用中.

更新:我为FrameLayout 添加差异报告:

在此输入图像描述

新问题

所以我的问题改变了如何在以前的版本中使用该方法,为什么有选择地出现检查错误?

如果我添加冗余强制转换,则错误消息将消失:

((FrameLayout) layout).getForeground()
Run Code Online (Sandbox Code Playgroud)

但它正在访问View现在不支持的方法.

因此,我认为针对以前的API会删除错误消息,但我希望使用此Framelayout方法的解决方案或线索来解决我的问题:

ANDROID_COMPILE_SDK_VERSION=23
ANDROID_BUILD_TOOLS_VERSION=23.0.1
ANDROID_DEFAULT_MIN_SDK_VERSION=19
ANDROID_DEFAULT_TARGET_SDK_VERSION=23
Run Code Online (Sandbox Code Playgroud)

解决方法

简而言之,作为一种解决方法,我将类型FrameLayout直接更改为,因此关于API和转换的警告已经消失,我测试它适用于Android 4.4.4设备和调试,我认为它会崩溃,无论如何它只用于一个动画,我将来会修复/更换它.

最初的问题

我分叉和定制的谷歌样品Android的托皮卡,和Android工作室表明,我不理解使用方法所需的API级别的错误getForeground()之类的Viewandroid.view包:

调用需要API级别23(当前最小值为19):android.view.View#getForeground

引用标记了API级别1中添加的方法,而documentation(Control+Q)显示了相同的内容:

Doc显示API级别1方法

但是Calling new methods on older versions inspection显示需要API级别23的错误: …

java android android-studio android-api-levels android-framelayout

28
推荐指数
1
解决办法
9809
查看次数

Android开发:api 14 vs api 15

我想开发一个Android冰淇淋三明治和以上版本的应用程序.所以,我发现android 4.0支持api 14和android 4.0.3 api 15.请查看仪表板http://developer.android.com/about/dashboards/index.html.似乎没有人拥有android ics 4.0但只有4.0.3或4.0.4.这很重要,因为如果它看起来如此,我将使用api 15而不是14来开发应用程序.但是我确信没有人在他的4.0.0版本中安装了android.你能确认仪表板中的数据吗?我的意思是,你能否确认只有4.0.3和4.0.4版本的设备上才有机器人冰淇淋三明治?谢谢

android android-api-levels

24
推荐指数
2
解决办法
2万
查看次数

从API23移除Apache HTTP Client会对Volley产生影响吗?

正如我们所知,Apache HTTP Client已在API 23中删除

Apache HTTP客户端删除

但是,Volley库目前仍然使用Apache的库如

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.cookie.DateUtils;
Run Code Online (Sandbox Code Playgroud)

我测试了2个项目:一个用于compileSdkVersion 22,另一个用于compileSdkVersion 23获得2个截图:

compileSdkVersion 22

在此输入图像描述

compileSdkVersion 23

在此输入图像描述

我有两个问题:

  1. 当然,使用Volley的API23项目仍然可以成功运行.但是,我不明白他们如何Apache在运行时使用该库,他们是在API22或更低版本中找到的?
  2. 而且,我想知道在不久的将来,Volley会升级以便不再使用Apache图书馆吗?如果没有,当Apache我的图书馆完全删除并且不受支持时,我现在的项目是否仍会继续使用?

也许我的英语不太清楚,但希望你能理解我的问题.

任何解释将不胜感激.

更新:

从@ random的评论中,我使用谷歌的官方Volley库创建了一个新的API23项目(我的意思git clone https://android.googlesource.com/platform/frameworks/volley是谷歌建议的这里),而不是compile 'com.mcxiaoke.volley:library:1.0.17'build.gradle文件中使用.是的,在构建项目时因缺少Apache库而出错.必须按文档添加useLibrary 'org.apache.http.legacy'build.gradle文件中.


第二次更新:

我刚刚定制了谷歌的排球(作为我项目中的一个模块),删除了Apache库.请转到我的GitHub示例项目供您参考.但请注意,它尚未针对所有情况进行全面测试,并且我仅测试了02个简单案例:GET并且POST我的Web服务请求是ASP.NET Web …

apache android httpresponse android-volley android-api-levels

22
推荐指数
2
解决办法
1万
查看次数