小编Yan*_*ick的帖子

Gradle构建失败:无法找到方法'org.gradle.api.tasks.testing.Test.getTestClassesDirs()Lorg/gradle/api/file/FileCollection;'

当我尝试从github 编译导入的项目时,我的gradle构建总是失败,并带有以下例外.

Unable to find method 'org.gradle.api.tasks.testing.Test.getTestClassesDirs()Lorg/gradle/api/file/FileCollection;'
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)</li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)</li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the …
Run Code Online (Sandbox Code Playgroud)

android gradle

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

使用 Google UMP SDK 时出现 Admob TCF 错误

我最近根据文档集成了 UMP SKD 。现在我收到了来自 Adbmob 的错误报告,其中指出许多广告请求由于错误“1.1”而失败。故障排除页面指出“谷歌作为供应商,在同意或合法利益的情况下是不允许的。”,但这也无济于事。有没有人在使用 UMP SDK 时遇到过类似的错误并且知道如何解决它?

android admob gdprconsentform

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

InputMethodService 与 Jetpack Compose - ComposeView 原因:组合到不传播 ViewTreeLifecycleOwner 的视图中

您可以在Github上找到一个示例项目来重现该问题

我一直在尝试使用 Jetpack Compose 作为键盘 UI。最终,当我尝试通过 InputMethodService 膨胀键盘时

class IMEService : InputMethodService() {

    override fun onCreateInputView(): View = KeyboardView(this)
}
Run Code Online (Sandbox Code Playgroud)

通过使用这个视图

class KeyboardView(context: Context) : FrameLayout(context)  {

    init {
        val view = ComposeView(context).apply {
            setContent {
                Keyboard() //<- This is the actual compose UI function
            }
        }
        addView(view)
    }

}
Run Code Online (Sandbox Code Playgroud)

或者

class KeyboardView2 constructor(
    context: Context,

    ) : AbstractComposeView(context) {

  
    @Composable
    override fun Content() {
        Keyboard()
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用键盘时,出现以下错误

class KeyboardView2 constructor(
    context: Context,

    ) : AbstractComposeView(context) {

  
    @Composable …
Run Code Online (Sandbox Code Playgroud)

android android-input-method android-view android-jetpack-compose

13
推荐指数
2
解决办法
5116
查看次数

Gradle:错误:程序类型已经存在:androidx.activity.R$attr

添加时

 implementation 
    ('com.google.android.ads.consent:consent-library:1.0.0') {
        exclude module: 'androidx.activity'
    }
Run Code Online (Sandbox Code Playgroud)

到我的 app/build.gradle 文件,我收到此错误:错误:程序类型已存在:androidx.activity.R$attr

我做了什么: 1. gradlew androidDependencies 但我找不到任何重复项

  1. 阅读:https : //developer.android.com/studio/build/dependencies#duplicate_classes

  2. 其他建议排除支持库版本的 stackoverflow 答案对我没有帮助

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

configurations {
    all*.exclude group: 'com.google.guava', module: 'listenablefuture'
}

configurations.all {exclude group: 'com.android.support', module: 'support-v13'}

dependencies {
    def nav_version = "1.0.0"

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha05'
    implementation 'androidx.core:core-ktx:1.1.0-alpha05'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'


    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.2-alpha02'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha02'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test:rules:1.1.1'
    androidTestImplementation 'androidx.test:core-ktx:1.1.0'

    implementation "com.vorlonsoft:androidrate:1.2.1"
    implementation …
Run Code Online (Sandbox Code Playgroud)

android gradle

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

Facebook Android 应用程序如何安装 Facebook Messenger?

当我发现 Android 上的 Facebook 应用程序显然能够在未经许可的情况下安装 Facebook Messenger 应用程序时,我感到非常惊讶。 图片

我知道可以通过另一个应用程序安装应用程序,但用户需要通过系统对话框确认安装。除此之外,在较新的 Android 版本上,用户需要向尝试发出安装请求的应用授予“从未知来源安装”的权限。

然而,我没有授予 Facebook 任何安装权限,也没有系统级别的对话框要求我确认安装。我还确保之前尚未安装 Messenger。

我使用的是运行 Android 10 (Miui 12) 的 Poco F2 Pro。我在不同的设备上观察到相同的行为。Facebook在这里使用了什么样的魔法?

android android-facebook

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

Jetpack Compose 中的缩放按钮动画

我想使用 Jetpack Compose 构建这个从 AirBnB 应用程序按下的精彩按钮动画 1

不幸的是,动画/过渡 API 最近发生了变化,而且几乎没有相关的文档。有人可以帮助我找到实现此按钮按下动画的正确方法吗?

编辑 根据 @Amirhosein 的回答,我开发了一个按钮,看起来几乎与 Airbnb 的示例一模一样

代码:

@Composable
fun AnimatedButton() {
    val boxHeight = animatedFloat(initVal = 50f)
    val relBoxWidth = animatedFloat(initVal = 1.0f)
    val fontSize = animatedFloat(initVal = 16f)

    fun animateDimensions() {
        boxHeight.animateTo(45f)
        relBoxWidth.animateTo(0.95f)
       // fontSize.animateTo(14f)
    }

    fun reverseAnimation() {
        boxHeight.animateTo(50f)
        relBoxWidth.animateTo(1.0f)
        //fontSize.animateTo(16f)
    }

        Box(
        modifier = Modifier
            .height(boxHeight.value.dp)
            .fillMaxWidth(fraction = relBoxWidth.value)

            .clip(RoundedCornerShape(8.dp))
            .background(Color.Black)
            .clickable { }
            .pressIndicatorGestureFilter(
                onStart = {
                    animateDimensions()
                },
                onStop = {
                    reverseAnimation()
                },
                onCancel = { …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-compose-button

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

匹配列中父项的宽度(Jetpack Compose)

默认情况下,Column {}具有其最大子元素的宽度。如何使所有其他元素适合父元素的宽度Column?如果我使用Modifier.fillMaxWidth()这些元素将占用整个可用空间并使父元素Column变大。我怎样才能实现与Modifier.matchParentWidth()Modifier 提供的相同的行为?

android android-jetpack-compose

9
推荐指数
4
解决办法
5943
查看次数

Jetpack Compose 滚动条

有没有办法添加滚动条来添加LazyColumnScrollableColumn已弃用)。Javadoc 没有提到有关 Jetpack Compose 中滚动条的任何内容。

澄清一下,这是我想要实现的设计: 1

甚至可以在 Jetpack Compose 中做到这一点吗?或者不支持滚动条?

android android-jetpack-compose

9
推荐指数
4
解决办法
1407
查看次数

Jetpack Compose 中约束布局的权重

有没有办法在Jetpack Compose ConstraintLayout 链中使用权重,就像在 XML 中一样:

\n
<android.support.constraint.ConstraintLayout\n    xmlns:android="http://schemas.android.com/apk/res/android"\n    xmlns:app="http://schemas.android.com/apk/res-auto"\n    android:layout_width="match_parent"\n    android:layout_height="match_parent">\n\n    <View\n        android:id="@+id/first"\n        android:layout_width="0dp"\n        android:layout_height="48dp"\n        android:background="#caf"\n        app:layout_constraintLeft_toLeftOf="parent"\n        app:layout_constraintRight_toLeftOf="@+id/start"\n        app:layout_constraintHorizontal_weight="6"/>\n\n    <View\n        android:id="@+id/second"\n        android:layout_width="0dp"\n        android:layout_height="48dp"\n        android:background="#fac"\n        app:layout_constraintLeft_toRightOf="@+id/first"\n        app:layout_constraintRight_toRightOf="parent"\n        app:layout_constraintHorizontal_weight="4"/>\n\n</android.support.constraint.ConstraintLayout>\n\n
Run Code Online (Sandbox Code Playgroud)\n

目前,两者ConstraintLayoutScope都不ConstraintScope提供重量功能。ConstraintLayoutScope提供createHorizontalChain(vararg elements: ConstraintLayoutReference, chainStyle: ChainStyle)(或createVerticalChain分别)但没有为各个元素设置权重的选项。

\n

有了指导方针、障碍和其他一切的整合,我觉得这里缺少一些重要的东西。有没有办法在链中使用权重或模拟它们的行为?我不能只为元素指定固定宽度,因为 ConstraintLayout 的宽度必须与整个屏幕匹配。

\n

注意:据我了解,新的 Jetpack Compose ConstraintLayout 对于复杂的嵌套布局结构(如 Android View ConstraintLayout)没有性能优势。I\xe2\x80\x99m 也知道 Row 和 Column 提供权重功能,但在我的情况下我必须使用 ConstraintLayout (原因

\n

android android-jetpack-compose

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

Jetpack Compose:布局坐标操作仅在 Android 6 设备上 isAttached 为 true 时有效

我的崩溃报告系统发现大约 4% 的设备发生崩溃。受影响的设备由 LG、三星或华为制造,运行 Android 6.0.1。我无法在运行 API 23 的测试设备上重现该问题。

例外情况:

Fatal Exception: java.lang.IllegalStateException: LayoutCoordinate operations are only valid when isAttached is true
       at androidx.compose.ui.node.LayoutNodeWrapper.getParentLayoutCoordinates(LayoutNodeWrapper.kt:105)
       at androidx.compose.ui.layout.LayoutCoordinatesKt.findRoot(LayoutCoordinates.kt:155)
       at androidx.compose.ui.layout.LayoutCoordinatesKt.boundsInWindow(LayoutCoordinates.kt:120)
       at androidx.compose.ui.semantics.SemanticsNode.getBoundsInWindow(SemanticsNode.kt:120)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2082)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2092)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2098)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$default(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2071)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.getCurrentSemanticsNodes(AndroidComposeViewAccessibilityDelegateCompat.android.kt:176)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.populateAccessibilityNodeInfoProperties(AndroidComposeViewAccessibilityDelegateCompat.android.kt:290)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.createNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt:247)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.access$createNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt:86)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider.createAccessibilityNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt:1996)
       at android.view.View.createAccessibilityNodeInfoInternal(View.java:6040)
       at android.view.View$AccessibilityDelegate.createAccessibilityNodeInfo(View.java:22287)
       at android.view.View.createAccessibilityNodeInfo(View.java:6026)
       at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:145)
       at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:119)
       at android.view.View.onInitializeAccessibilityEventInternal(View.java:5980)
       at android.view.View$AccessibilityDelegate.onInitializeAccessibilityEvent(View.java:22199)
       at androidx.core.view.AccessibilityDelegateCompat.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:257)
       at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:76)
       at android.view.View.onInitializeAccessibilityEvent(View.java:5966)
       at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5833)
       at android.view.View$AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:22138)
       at androidx.core.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:196)
       at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:113)
       at android.view.View.sendAccessibilityEventUnchecked(View.java:5816)
       at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.run(ViewRootImpl.java:7154) …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose

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