小编kau*_*lex的帖子

Android 命令行工具 sdkmanager 始终显示:警告:无法创建设置

我使用 android 的新命令行工具,因为旧的 android sdk-tools 存储库不再可用。所以我改变了我的 gitlab-ci 来加载 commandlintools。但是当我尝试运行它时,出现以下错误:

Warning: Could not create settings
java.lang.IllegalArgumentException
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过手动执行这些命令,但我遇到了同样的错误。此外,如果我运行sdkmanager --version,也会发生同样的错误。我的 gitlab-ci 看起来像:

image: openjdk:9-jdk

variables:
  ANDROID_COMPILE_SDK: "29"
  ANDROID_BUILD_TOOLS: "29.0.3"
  ANDROID_SDK_TOOLS:   "6200805"

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
  - unzip -d android-sdk-linux android-sdk.zip
  - echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
  #- echo y | android-sdk-linux/tools/bin/sdkmanager "platform-tools" …
Run Code Online (Sandbox Code Playgroud)

android android-build gitlab-ci android-sdk-manager android-studio-3.6

187
推荐指数
12
解决办法
11万
查看次数

使用命令行构建 Xcode 14.3 Rosetta

随着 Apple 取消了对 Xcode 的 x86_64 支持并为 Rosetta 引入了单独的模拟器,我想知道如何通过 cli 在 Rosetta 模拟器上运行我的应用程序。

这也是快速通道所需要的。(参见快车道问题

在 Xcode 14.3 的发行说明中,没有提及任何有关 cli 的内容。(发行说明

xcode rosetta swift fastlane rosetta-2

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

可以像在导航组件中一样在 android 中的首选项中添加动画

是否有可能像导航组件中那样添加动画来片段化偏好的变化?安卓指南

所以我想在这里执行类似的操作:

<fragment>
    <action
        android:id="@+id/action_a_to_b"
        app:destination="@id/b"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slide_out_right"
        app:popEnterAnim="@anim/slide_in_left"
        app:popExitAnim="@anim/slide_out_left" />

</fragment>
...
Run Code Online (Sandbox Code Playgroud)

更新:

明确地说:我想将导航组件与 Jetpack 首选项结合使用。问题是,jetpack 会自动处理首选项中的动画,但我想要另一个动画,然后是默认的淡入/淡出。所以我只想覆盖它。即:有没有办法像在 hirachy 中那样在 xml 中添加动画?

<PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">

<PreferenceCategory
    app:key="help_category"
    app:title="Help">

    <Preference
        app:fragment="com.example.SyncFragment"
        app:key="feedback"
        app:summary="Report technical issues or suggest new features"
        app:title="Send feedback"/>

</PreferenceCategory>
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-animation kotlin android-jetpack

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

Docker 卷 mariadb 具有 root 权限

我在使用 docker compose 文件(MariaDB、RabbitMQ、Maven)启动 docker 容器时偶然发现了 docker 卷的问题。我简单地开始它们docker-compose up -d(没有 SUDO)开始它们

\n

我的卷定义如下:

\n
...\nvolumes:\n  - ./production/mysql:/var/lib/mysql:z\n...\n
Run Code Online (Sandbox Code Playgroud)\n

一切工作正常并且./production目录已创建(卷映射到的位置)

\n

但是当我再次尝试使用 down/up 重新启动 docker 容器时,出现以下错误:

\n
error checking context: \'no permission to read from \'\xe2\x80\xa6/production/mysql/aria_log.00000001\'\n
Run Code Online (Sandbox Code Playgroud)\n

当我检查提到的文件时,我发现它需要 root:root 权限。这是因为该文件是使用容器内的 root 用户生成的。所以我尝试使用文档中提到的名称空间。

\n

无论如何,错误仍然发生。有什么想法或参考吗?

\n

谢谢。

\n

Docker 撰写文件:

\n
version: \'3.8\'\n\nservices:\n  mysql:\n    image: mariadb:latest\n    restart: always\n    env_file:\n      - config.env\n    volumes:\n      - ./production/mysql:/var/lib/mysql:z\n    environment:\n      MYSQL_DATABASE: ${DATABASE_NAME}\n      MYSQL_USER: ${DATABASE_USER}\n      MYSQL_PASSWORD: ${DATABASE_PASSWORD}\n      MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}\n    networks:\n      - testnetwork\n\nnetworks:\n …
Run Code Online (Sandbox Code Playgroud)

ubuntu permission-denied mariadb docker docker-compose

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

使用 Xcode Cloud 构建 Kotlin 多平台应用程序

随着 Apple 宣布 Xcode Cloud 现已可供所有开发人员使用,我尝试将其设置为 Kotlin 多平台项目。老实说,开始有点困难。目前我在简单的测试操作中面临以下问题:

\n
The operation couldn\xe2\x80\x99t be completed. Unable to locate a Java Runtime.\nPlease visit http://www.java.com for information on installing Java.\nCommand PhaseScriptExecution failed with a nonzero exit code\n
Run Code Online (Sandbox Code Playgroud)\n

所以我阶段就尝试安装一个jdk ci_post_clone.sh。的输出java -version如下:

\n
openjdk version "17.0.2" 2022-01-18\nOpenJDK Runtime Environment (build 17.0.2+8-86)\nOpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)\nInstalled java\n
Run Code Online (Sandbox Code Playgroud)\n

./gradlew -v输出:

\n
\nShowing All Messages\n------------------------------------------------------------\n\nGradle 7.4.2\n\n------------------------------------------------------------\nKotlin:       1.5.31\nGroovy:       3.0.9\nAnt:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021\nJVM: …
Run Code Online (Sandbox Code Playgroud)

xcode kotlin kotlin-multiplatform xcode-cloud

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

无法为 Retrofit2.Response&lt;...&gt; 创建调用适配器

我的 API:

@GET("/cinema/notShownMovies")
fun getNotShownMovies(
   @Query("token") token: String
): Response<GetMovieResponse>


@JsonClass(generateAdapter = true)
data class Movie(
    val id: Long,
    val name: String,
    val date: String,

    @field:Json(name = "trailer_link")
    val trailerLink: String?,

    @field:Json(name = "poster_link")
    val posterLink: String?,

    @field:Json(name = "booked_tickets")
    val bookedTickets: Int,

    @field:Json(name = "movie_year_id")
    val movieYearId: Int,

    @field:Json(name = "created_at")
    val createdAt: String,

    @field:Json(name = "updated_at")
    val updatedAt: String,

    @field:Json(name = "worker_id")
    val workerId: Int?,

    @field:Json(name = "worker_name")
    val workerName: String?,

    @field:Json(name = "emergency_worker_id")
    val emergencyWorkerId: Int?,

    @field:Json(name …
Run Code Online (Sandbox Code Playgroud)

android moshi retrofit2

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

Android/Koin - 如何告诉 koin 应该重新初始化单个依赖项

我偶然发现了一个问题,我必须重新初始化我的 Retrofit API 类,因为 URL 发生了变化,所以我想告诉 Koin 重新初始化单个依赖项。我不想使用工厂,因为它在大多数情况下仍然是单例。

停止和开始 koin 将是一个想法,但这是一个非常繁重和时间紧张的过程,所以我不想这样做。

有任何想法吗?

android dependency-injection retrofit2 koin

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

材质编辑文本未在 Android Studio 编辑器中呈现

我的 android sudio 设计编辑器不渲染材质 TextInputLayouts。我已经尝试过使缓存无效。所有其他元素也正确渲染其他材质元素

                   <com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/ti"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="20dp"
                    android:layout_marginEnd="30dp"
                    android:layout_marginBottom="20dp"
                    android:hint="@string/street_number">

                    <com.google.android.material.textfield.TextInputEditText
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:inputType="text"
                        android:text="@{vm.user.streetnumber}" />
                </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android android-edittext android-studio material-design android-textinputlayout

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