标签: androidx

androidx getFragmentManager() 已被弃用

获得弃用警告androidx.fragment.app.Fragment

警告:[deprecation] getFragmentManager()inFragment已被弃用。

该怎么办?

android android-fragments fragmentmanager deprecation-warning androidx

10
推荐指数
2
解决办法
5411
查看次数

Android 通知 MediaStyle 忽略正在进行的标志

我正在尝试在音频 Android 应用程序中使用 MediaStyle 通知,如音频应用程序文档媒体样式文档中所述。我能够成功地显示具有功能传输控制的通知,因此我相信我的实施是合理的。但是,当我按照建议设置androidx.media.app.NotificationCompat.MediaStylevia时,它似乎忽略了该标志的任何使用。根据源代码确保“通知不能被忽略”。当没有设置媒体样式时,我会遇到所描述的行为,但当我使用..setStyle()NotificationCompat.Builder.setOngoing()setOngoing.setStyle()

我想知道是否有人知道解决方法,或者是否有一些未记录的要求,我需要安抚以使用.setOngoing()媒体样式通知。我的编译 SDK 版本、目标 SDK 版本和最小 SDK 版本都是 30。如果有任何其他代码有用,请告诉我;我相信我正在提供相关的内容。

为了说明这种困境,我提供了一些屏幕截图,显示了应用媒体样式时通知如何可消除,而未应用媒体样式时通知如何不可消除。

媒体风格: 具有媒体风格

无媒体风格: 无媒体风格

依赖项(全部是最新的):

val appCompatVersion: String = "1.4.0-alpha01"
val mediaVersion: String = "1.4.0-alpha01"
val media2Version: String = "1.0.0-alpha04"

implementation("androidx.appcompat:appcompat:$appCompatVersion")
implementation("androidx.media:media:$mediaVersion")
implementation("androidx.media2:media2:$media2Version")
Run Code Online (Sandbox Code Playgroud)
private val notification: Notification?
        get() {
            val controller: MediaControllerCompat = mediaSession.controller ?: return null
            val description: MediaDescriptionCompat = controller.metadata?.description ?: return null
            val notificationManager: NotificationManager = notificationManager ?: return null

            val notificationChannel …
Run Code Online (Sandbox Code Playgroud)

android android-notifications kotlin androidx android-notification.mediastyle

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

禁用特定模块或依赖的android.enableJetifier

使用以下设置运行Android Studio 3.2 gradle.properties:

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

我有一个带有一些C/Java代码的本机项目.使用这些设置,编译失败,并显示以下错误消息:

org.gradle.api.artifacts.transform.ArtifactTransformException:无法使用transform JetifyTransform将文件'android.jar'转换为匹配属性{artifactType = processed-jar}
java.lang.RuntimeException:无法转换'C:\ Android\sdk\platforms\android-28\android.jar'使用Jetifier.

我相信它不喜欢我的gradle文件:

apply plugin: 'java'
...
dependencies {
   implementation files("${mySdkDir}/android.jar")
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以全局关闭enableJetifier,这确实会使这个错误消失.但是,我只想禁用此特定模块/依赖项的jetifier.

如何设置enableJetifier=false本机/ java模块项目?

android gradle androidx

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

AndroidX迁移依赖/库

我已成功将项目迁移到AndroidX.应用程序运行正常,但我收到编译时错误,因为我的依赖项使用支持包.

此搜索

图像2

这个错误的原因

因为PhotoView是一个依赖类,它使用的android.support.v7.widget.AppCompatImageView是我的项目中不再可用的.因为它现在androidx.appcompat.widget.AppCompatImageView

项目还在运行吗?

是的,android.enableJetifier将此依赖项转换AndroidX为运行时,但我想摆脱编译时错误.

现在有快速解决方案吗?

android androidx android-jetifier

9
推荐指数
2
解决办法
6001
查看次数

迁移到AndroidX

我将Android Studio升级到3.2,现在我想使用from Redactor- > 自动迁移到AndroidX Migrate to AndroidX,现在它出现了这个错误:

Android依赖项'androidx.media:media'具有不同版本的编译(1.0.0-rc01)和运行时(1.0.0)类路径.您应该通过DependencyResolution手动设置相同的版本

android androidx

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

使用API​​ 28和“ androidx.appcompat”库项目时,找不到“ AppCompatActivity”符号

我将构建和目标版本更新为28(Pie),并替换了相关的依赖项。现在我的项目说在上找不到符号AppCompatActivity。我试图

  • 清洁项目
  • 重建项目
  • 无效的缓存/重启

但是结果是一样的。而且,当我在活动类中的extends关键字之后尝试Ctrl+时Space,没有任何"AppCompatActivity建议。我试图调查它是否存在于libraries文件夹中,是否存在于文件夹中。

在此处输入图片说明

现在,我应该怎么做才能使其正常工作?如果库有任何变化/替代,androidx请告诉我。这是我的完整build.gradle文件

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.invogen.messagingapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
//    implementation 'com.android.support:appcompat-v7:28.0.0'
//    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
//    implementation 'com.android.support:design:28.0.0'
//    implementation 'com.android.support:support-v4:28.0.0'

    // Libs for newer …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat gradle android-studio androidx

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

TextInputEditText 的 OutlinedBox 不起作用

我正在登录屏幕上工作,我想在其中使用以下视图实现材料编辑文本:

在此处输入图片说明

以下是我的代码:

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox"
        android:layout_height="wrap_content">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="This is Hint"/>

    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

但是 OutlinedBox 没有出现。这是它的外观:

在此处输入图片说明

请帮忙。

android android-edittext material-design android-textinputlayout androidx

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

不能给ConstraintLayout充气

每次我的应用程序崩溃,因为它无法在类路径中找到Landroidx/constraintlayout/widget/R $ styleable.我试图重建,使缓存无效,但它总是在运行时给我相同的错误.
我尝试了1.1.2和1.1.3两个版本.而且有趣的是:当使用1.1.3时,androidX Jetifier只是强制使用1.1.2,你可以从gradle报告中看到

Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
 Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
    at android.view.LayoutInflater.createView(LayoutInflater.java:651)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:496)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:141)
    at com.github.sharetaxi.LoginActivity.onCreate(LoginActivity.kt:24)
    at android.app.Activity.performCreate(Activity.java:7050)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2809)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:176)
    at android.app.ActivityThread.main(ActivityThread.java:6701)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-constraintlayout androidx

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

透明 AppBarLayout

我正在开发一个应用程序,我想要一个透明的工具栏 (AppBarLayout),但仍然可以看到导航图标按钮。不幸的是,我能做到的最好的是透明的工具栏,它仍然会降低阴影(高程)。

我有一个全屏对话框片段,请参阅样式:

<style name="FullScreenImageStyle" parent="AppTheme">
        <item name="android:windowNoTitle">true</item>

        <item name="android:windowFullscreen">false</item>
        <item name="android:windowIsFloating">false</item>


        <item name="android:windowEnterAnimation">@anim/slide_up</item>
        <item name="android:windowExitAnimation">@anim/slide_down</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="windowActionBarOverlay">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

片段的布局如下所示(这里只是开头):

<androidx.coordinatorlayout.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

    <com.google.android.material.appbar.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent">

        <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

    </com.google.android.material.appbar.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

稍后在初始化对话框片段时,我设置了全屏样式和导航图标的资源 ID。

结果看起来像这样。注意工具栏在屏幕顶部的阴影: 在此处输入图片说明

任何想法如何解决这个问题,请?

android material-design androidx

9
推荐指数
3
解决办法
3778
查看次数

将androidx biometric更新为1.0.0-alpha04后,Android崩溃

一切正常'androidx.biometric:biometric:1.0.0-alpha03',但是当我使用最新版本构建项目'androidx.biometric:biometric:1.0.0-alpha04'并调用myBiometricPrompt.authenticate(promptInfo)它时,会引发此异常:FragmentManager is already executing transactions

这是堆栈跟踪:

 java.lang.IllegalStateException: FragmentManager is already executing transactions
        at androidx.fragment.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:2207)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2267)
        at androidx.fragment.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:814)
        at androidx.biometric.BiometricPrompt.authenticateInternal(BiometricPrompt.java:525)
        at androidx.biometric.BiometricPrompt.authenticate(BiometricPrompt.java:465)
        at com.my.app.ui.LoginFragment.handleTouchIdAuth(LoginFragment.kt:161)
        at com.my.app.ui.LoginFragment.onViewCreated(LoginFragment.kt:62)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1471)
        at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2646)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2416)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2372)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
        at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2466)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1483)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
        at android.app.Activity.performStart(Activity.java:7157)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2937)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) …
Run Code Online (Sandbox Code Playgroud)

android biometrics kotlin androidx android-biometric-prompt

9
推荐指数
2
解决办法
949
查看次数