标签: android-8.0-oreo

Android 8.0:java.lang.IllegalStateException:不允许启动服务Intent

在应用程序启动时,应用程序启动应该执行某些网络任务的服务.在针对API级别26后,我的应用程序无法在后台启动Android 8.0上的服务.

引起:java.lang.IllegalStateException:不允许启动服务Intent {cmp = my.app.tt/com.my.service}:app在后台uid UidRecord {90372b1 u0a136 CEM空闲过程:1 seq(0,0) ,0)}

据我所知,它涉及: 后台执行限制

如果针对Android 8.0的应用程序在不允许创建后台服务的情况下尝试使用该方法,则startService()方法现在会抛出IllegalStateException.

" 在不允许的情况下 " - 它实际意味着什么?以及如何解决它.我不想把我的服务设置为"前景"

android android-service android-8.0-oreo

321
推荐指数
11
解决办法
16万
查看次数

然后Context.startForegroundService()没有调用Service.startForeground()

Service在Android O OS上使用Class.

我计划Service在后台使用.

Android建议指出startService()应该使用startForegroundService().

如果您使用startForegroundService(),则Service抛出a Service然后调用Service错误.

这有什么问题?

service android operating-system foreground android-8.0-oreo

212
推荐指数
18
解决办法
11万
查看次数

奥利奥没有显示通知

普通通知生成器不会在Android O上显示通知.

如何在Android 8 Oreo上显示通知?

是否有任何新代码要添加以在Android O上显示通知?

android android-notifications android-8.0-oreo

171
推荐指数
9
解决办法
13万
查看次数

java.lang.IllegalStateException:只有全屏不透明活动才能请求方向

我在Android 8.0 Oreo java.lang.IllegalStateException中从联系簿中检索联系人时遇到问题:只有全屏不透明活动可以请求方向

我试图通过电话联系簿获取我的活动中的联系人,它对Lollipop,Marshmallow,Nougat等非常有用,但它会给我这样的奥利奥错误,请帮助我.我的代码如下.

演示代码: -

private void loadContacts() {
            contactAsync = new ContactLoaderAsync();
            contactAsync.execute();
        }

        private class ContactLoaderAsync extends AsyncTask<Void, Void, Void> {
            private Cursor numCursor;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                Uri numContacts = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
                String[] numProjection = new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE};
                if (android.os.Build.VERSION.SDK_INT < 11) {
                    numCursor = InviteByContactActivity.this.managedQuery(numContacts, numProjection, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
                } else {
                    CursorLoader cursorLoader = new CursorLoader(InviteByContactActivity.this, numContacts, numProjection, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE …
Run Code Online (Sandbox Code Playgroud)

java android android-8.0-oreo android-8.1-oreo

164
推荐指数
16
解决办法
7万
查看次数

Android 8.0 Oreo在关注TextInputEditText时崩溃

将我们的一些设备更新到Android 8.0后,在关注a TextInputEditText内部的一个字段后TextInputLayout,应用程序崩溃了Exception:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.view.View.getBoundsOnScreen(android.graphics.Rect)' on a null object reference
at android.app.assist.AssistStructure$WindowNode.(AssistStructure.java)
at android.app.assist.AssistStructure.(AssistStructure.java)
at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3035)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1807)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Run Code Online (Sandbox Code Playgroud)

当我们进入android 设置 - >系统 - >语言和输入 - >高级 - >自动填充服务 - >无,然后专注于TextInputEditText / TextInputLayout不再崩溃.

如何在不必禁用设备上的新8.0自动填充服务的情况下防止崩溃发生?

android android-edittext android-textinputlayout android-8.0-oreo

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

"没有足够的信息来推断参数T"与Kotlin和Android

我正在尝试使用Kotlin在我的Android应用程序中复制以下ListView:https://github.com/bidrohi/KotlinListView.

不幸的是我收到了一个错误,我无法解决自己.这是我的代码:

MainActivity.kt:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val listView = findViewById(R.id.list) as ListView
    listView.adapter = ListExampleAdapter(this)
}

private class ListExampleAdapter(context: Context) : BaseAdapter() {
    internal var sList = arrayOf("Eins", "Zwei", "Drei")
    private  val mInflator: LayoutInflater

    init {
        this.mInflator = LayoutInflater.from(context)
    }

    override fun getCount(): Int {
        return sList.size
    }

    override fun getItem(position: Int): Any {
        return sList[position]
    }

    override fun getItemId(position: Int): Long {
        return position.toLong()
    }

    override fun getView(position: Int, convertView: View?, …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-8.0-oreo

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

为api 26设置Gradle(Android)

由于我已将Nexus 5x升级到Android O DP3,因此无法测试我的应用程序.我收到错误,因为我没有配置我的Gradle文件来使用新的API级别(26).

所以我改变了这个和依赖项,但是我的所有支持库都出现了错误

Failed to resolve: com.android.support:design:26.0.0-beta2
Run Code Online (Sandbox Code Playgroud)

点击

Install repository and sync project
Run Code Online (Sandbox Code Playgroud)

弹出progressdialog以下载正确的依赖项,但不会删除错误.清理项目,安装存储库然后重建项目也不起作用.

程序兼容性-V7

在appcompat-v7:26.0.0-beta2上,我得到(甚至在Gradle同步之前)带有错误的线条:

When using a compileSdkVersion older than android-O revision 2,
the support library version must be 26.0.0-alpha1 or lower (was 26.0.0-beta2)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我为Android API 26正确配置gradle文件吗?任何帮助,将不胜感激.

PS:我现在正在使用Gradle 3.0.0-alpha3,但在Gradle 2.3.2上得到了同样的错误

我的Gradle文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion '26.0.0'

defaultConfig {
    applicationId "********"
    minSdkVersion 21
    targetSdkVersion 26
    versionCode 3
    versionName "2.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies …
Run Code Online (Sandbox Code Playgroud)

android gradle android-support-library build.gradle android-8.0-oreo

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

无法在Android api> = 24上使用java.lang.IllegalArgumentException恢复活动

我的应用程序在运行版本的设备上发生崩溃7.0,7.1.18.0.0使用以下堆栈跟踪:

Fatal Exception: java.lang.RuntimeException: Unable to resume activity {xxx/xxx.views.activities.HomeActivity}: java.lang.IllegalArgumentException
   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3788)
   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2991)
   at android.app.ActivityThread.-wrap14(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6692)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Caused by java.lang.IllegalArgumentException
   at android.os.Parcel.readException(Parcel.java:1697)
   at android.os.Parcel.readException(Parcel.java:1646)
   at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:6600)
   at android.app.Activity.isTopOfTask(Activity.java:6142)
   at android.app.Activity.onResume(Activity.java:1331)
   at android.support.v4.app.FragmentActivity.onResume(FragmentActivity.java:485)
   at xxx.views.activities.BaseActivity.onResume(BaseActivity.java:50)
   at xxx.views.activities.HomeActivity.onResume(HomeActivity.java:364)
   at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1277)
   at android.app.Activity.performResume(Activity.java:7058)
   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765)
   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2991)
   at android.app.ActivityThread.-wrap14(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6692)
   at java.lang.reflect.Method.invoke(Method.java)
   at …
Run Code Online (Sandbox Code Playgroud)

android android-activity android-7.0-nougat android-8.0-oreo

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

通知无法在Android Oreo中显示(API 26)

尝试在Android O上显示通知时,我收到此消息.

对于音量控制以外的操作,不推荐使用流类型

该通知直接来自示例文档,并在Android 25上显示正常.

android push-notification android-8.0-oreo android-8.1-oreo

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

自动调整TextView不起作用(Android O)

我在支持库26中添加了新的自动调整功能.我阅读了一个文档,可以在这里找到:https: //developer.android.com/preview/features/autosizing-textview.html

我认为它应该以这种方式工作:您可以使用以下属性启用自动调整大小:app:autoSizeTextType="uniform".我认为TextView应该使用所有可用空间来显示整个文本(不仅仅是一个部分 - 它不应该被裁剪)并且textSize应该尽可能大.如果您需要限制文本的最大或最小大小,则可以使用以下两个属性:

app:autoSizeMinTextSize="XXsp" // (you can also use px or dp values.)
Run Code Online (Sandbox Code Playgroud)

要么

app:autoSizeMaxTextSize="XXsp"
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.假设我需要一个宽度为56dp的TextView.我有不同长度的文本,我想将这些文本设置为此TextView.它应该自动调整大小,以便尽可能显示整个文本(所有字符+未裁剪)textSize.

这是我的TextView:

<android.support.v7.widget.AppCompatTextView
        android:id="@+id/vName"
        style="@style/TextView.AutoSize"
        android:layout_width="56dp"
        android:gravity="bottom|center_horizontal"
        android:maxLines="1"
        app:autoSizeMinTextSize="1px"
        app:autoSizeTextType="uniform"
        app:layout_constraintBottom_toTopOf="@id/vGuideline"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />
Run Code Online (Sandbox Code Playgroud)

不幸的是,文本视图被裁剪.我想将此String设置为上面TextView的文本:"Groupa"但结果如下: 在此输入图像描述

(TextView位于ConstraintLayout内部,带有黄色圆圈背景.)

如您所见,textview根本没有调整大小.你知道该怎么办吗?

谢谢.

android autosize textview android-support-library android-8.0-oreo

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