标签: target-sdk

SYSTEM_ALERT_WINDOW - 如何在Android 6.0和targetSdkVersion 23上自动获得此权限

Facebook,Evernote,Pocket - 所有应用程序都会自动在Android 6.0上获得此权限,即使它们的目标是23(targetSdkVersion=23).

关于新的Marshmallow权限模型有很多文档.其中一个SYSTEM_ALERT_WINDOW被"提升"为"高于危险"的权限级别,因此需要特殊的用户干预才能授予应用程序这些权限.如果应用程序有targetSdkVersion22或更低,app会自动获得此权限(如果在清单中请求).

但是,我注意到一些获得此权限的应用程序,无需将用户发送到设置特殊页面的Draw over other apps权限.我看到Facebook,Evernote,Pocket - 也许还有更多.

任何人都知道在没有用户通过的情况下如何授予应用程序此权限Settings -> Apps -> Draw over other apps?

谢谢

android android-permissions target-sdk system-alert-window android-6.0-marshmallow

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

Android - java.lang.IndexOutOfBoundsException:项目位置0(0)无效.项目数:0

我在日志中收到此异常 -

 java.lang.IndexOutOfBoundsException: Invalid item position 0(0). Item count:0
            at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4622)
            at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
            at com.jivemap.app.CustomizedViews.MyLinearLayoutManager.measureScrapChild(MyLinearLayoutManager.java:66)
            at com.jivemap.app.CustomizedViews.MyLinearLayoutManager.onMeasure(MyLinearLayoutManager.java:30)
            at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2614)
            at android.view.View.measure(View.java:15318)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413)
            at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1061)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:599)
            at android.view.View.measure(View.java:15318)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:704)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:597)
            at android.view.View.measure(View.java:15318)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413)
            at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1061)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:599)
            at android.view.View.measure(View.java:15318)
            at android.widget.ListView.setupChild(ListView.java:1849)
            at android.widget.ListView.makeAndAddView(ListView.java:1764)
            at android.widget.ListView.fillSpecific(ListView.java:1320)
            at android.widget.ListView.layoutChildren(ListView.java:1635)
            at android.widget.AbsListView.onLayout(AbsListView.java:2141)
            at android.view.View.layout(View.java:13874)
            at android.view.ViewGroup.layout(ViewGroup.java:4364)
            at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:596)
            at android.view.View.layout(View.java:13874)
            at android.view.ViewGroup.layout(ViewGroup.java:4364)
            at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695)
            at android.view.View.layout(View.java:13874)
            at android.view.ViewGroup.layout(ViewGroup.java:4364)
            at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1672)
            at …
Run Code Online (Sandbox Code Playgroud)

android indexoutofboundsexception target-sdk android-recyclerview android-6.0-marshmallow

11
推荐指数
1
解决办法
3882
查看次数

当项目包含外语资源时,dotnet构建失败

[Visual Studio 15.6.3,dotnet SDK 2.1.102]

最近,(可能在更新后)我追踪了一个dotnet构建错误,该错误正在显示包含外语资源的项目.错误消息如下:

C:\ Program Files\dotnet\sdk\2.1.102\Microsoft.Common.CurrentVersion.targets(3570,5):错误MSB4062:无法从程序集Microsoft加载"Microsoft.Build.Tasks.AL"任务. Build.Tasks.Core,Version = 15.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a.确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类.

我可以提供重现此错误的步骤:

  1. 在Visual Studio中创建一个C#控制台应用程序,将其命名为"DotNetBugTest"
  2. 在构建下编辑项目属性,取消选中"首选32位"(控制台应用程序工件)
  3. 在项目的根级别添加资源,将其命名为"Messages.resx"
  4. 添加一个字符串资源,将其命名为"A",并将其命名为"English"
  5. 在项目的根级别添加另一个资源,将其命名为"Messages.fr-CA.resx"
  6. 添加相同的字符串资源,将其命名为"A",并将其命名为"French"
  7. 现在在"程序类"中,添加以下内容:

:

class Program
{
    static void Main(string[] args)
    {
        var rm = new ResourceManager("DotNetBugTest.Messages", typeof(Program).Assembly);

        var en = CultureInfo.CreateSpecificCulture("en-US"); 
        var fr = CultureInfo.CreateSpecificCulture("fr-CA"); 

        Console.WriteLine($@"en={rm.GetString("A", en)}");
        Console.WriteLine($@"fr={rm.GetString("A", fr)}");

        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

这在Visual Studio中运行良好.输出:

en=English
fr=French
Run Code Online (Sandbox Code Playgroud)

但是,如果您尝试从命令行编译它:

dotnet build --configuration Debug
Run Code Online (Sandbox Code Playgroud)

你得到错误.

有人知道如何解决这个问题吗?甚至建议在哪里看?

提前致谢...

.net c# resources build target-sdk

11
推荐指数
1
解决办法
1191
查看次数

Android studio更新编译sdk版本

我在 Ubuntu 中使用 android studio。我想更新编译sdk版本。现在我可以选择“API 23:Android 6.0 (Marshmallow)”作为最高版本。

项目结构窗口

现在我想增加这个。我应该从 SDK 管理器更新什么?我想尽可能少地更新内容,因为互联网连接缓慢且有限。

sdk android android-studio target-sdk

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

此应用程序是为旧版本的 Android 构建的,不包含最新的隐私保护

今天我开始收到这条恼人的消息(在 Google Play 之外安装 APK 时):

此应用程序是为旧版本的 Android 构建的,不包含最新的隐私保护

谷歌播放消息

这是什么消息?我们应该做什么?

我相信这是因为targetSdkVersion但找不到任何相关信息。

^^^^ 更新 ^^^^

事实证明,当我targetSdkVersion从 24 更改为 26 时 - 该消息消失了。

android apk target-sdk google-play-protect

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

Android Studio minSdkVersion、targetSdkVersion和minSdk、targetSdk有什么区别?

我将 Target SDK Version 从 30 更改为 31,Min SDK Version 从 19 更改为 22。在 build.gradle 中,minSdkVersion、targetSdkVersion 和 targetSdk 相应更改,除了 minSdk 之外。现在还是19岁。

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.studentsacademicmanagementappsama"
        minSdk 19
        targetSdk 31
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        targetSdkVersion 31
        minSdkVersion 22
    }
} 
Run Code Online (Sandbox Code Playgroud)
  • minSdkVersion、targetSdkVersion和minSdk、targetSdk有什么区别?

  • 我应该将 minSdk 更改为 22 还是忽略它?

android target-sdk

5
推荐指数
1
解决办法
1949
查看次数

如果targetSdkVersion> = 26,则Android 8.0上的应用程序图标大小

我的应用有一个方形图标。当targetSdkVersion<26时,应用程序图标会在所有设备上正确显示。但当targetSdkVersion> = 26时,应用图标会显示在Android 8.0设备上的白色圆圈内。有没有办法消除白色圆圈?

android target-sdk

4
推荐指数
1
解决办法
1110
查看次数

如果我使用的目标 SDK 版本是 21,我可以在 API 23 上运行我的应用程序吗

我开发了一个以 API 21 作为目标 SDK 版本的 Android 应用程序。

它会在它上面的 API 上正常运行吗,例如 API 23?

android android-studio target-sdk

3
推荐指数
1
解决办法
4977
查看次数

Android Q模拟器-Build.VERSION.SDK_INT返回28

 Build.VERSION.SDK_INT 
Run Code Online (Sandbox Code Playgroud)

在Android Q模拟器上运行时,返回28而不是29。我有什么想念的吗?我正在尝试添加专门针对Android Q的逻辑,但我不知道如何正确确定此版本。

app.gradle文件包含

    targetSdkVersion = 'Q'
    compileSdkVersion = 'android-Q'
Run Code Online (Sandbox Code Playgroud)

sdk android target-sdk targetsdkversion android-10.0

3
推荐指数
2
解决办法
921
查看次数

哪个targetSDK用于BLE?

我正在构建一个Android应用程序,它应该在每个具有蓝牙低功耗的设备上运行,这意味着minSDK为18.我不确定我应该使用哪个targetSDK.我在网上看到,最好始终使用最新版本(API 22).是这种情况,还是我应该使用我支持的每个targetSDK构建我的应用程序,即使用SDK 18为运行API 18的应用程序构建,使用SDK 19为具有API 19的设备构建,......?

我很困惑因为开始BLE发现我可以使用startScan()或startLeScan().Android文档告诉我:"startLeScan()在API级别21中已弃用,请使用startScan()".我不确定这对我应该使用哪个targetSDK来编译我的应用程序有什么影响.如果我使用SDK 22编译并使用startScan(),运行API 18的设备是否能运行我的应用程序,如果我使用API​​ 18编译并使用startLeScan(),运行API 22的设备是否能够运行我的应用程序?或者我应该真的只使用我支持的每个targetSDK构建我的应用程序,如上所述?

android bluetooth-lowenergy target-sdk android-ble

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