小编Kat*_*ine的帖子

Gradle - 删除所有重复的依赖项,只保留一个

我试图删除所有重复项以使其保持在 64K 限制以下(现在我有 65239,这不好,因为在这种情况下,我需要使用 multidex,这需要另一个依赖项),但我找不到有关如何从子组中删除模块的任何信息。

例如,几乎每个子依赖项都有com.android.support:support-v4:26.1.0com.android.support:support-compat:26.1.0我需要删除它,因为com.android.support:support-v4:26.1.0根目录中已经有一个,而我需要保留这个。

// 更新:以下线程gradle - 依赖项中的库重复讨论了涉及不同版本依赖项的不同问题。我没有这个问题,我使用的所有依赖项都有我需要的版本。

我需要删除所有标记为的模块(*)

+--- com.android.support:appcompat-v7:26.1.0
|    +--- com.android.support:support-annotations:26.1.0
|    +--- com.android.support:support-v4:26.1.0
|    |    +--- com.android.support:support-compat:26.1.0
|    |    |    +--- com.android.support:support-annotations:26.1.0
|    |    |    \--- android.arch.lifecycle:runtime:1.0.0 -> 1.0.3
|    |    |         +--- android.arch.lifecycle:common:1.0.3
|    |    |         |    \--- com.android.support:support-annotations:26.1.0
|    |    |         +--- android.arch.core:common:1.0.0
|    |    |         |    \--- com.android.support:support-annotations:26.1.0
|    |    |         \--- com.android.support:support-annotations:26.1.0
|    |    +--- com.android.support:support-media-compat:26.1.0
|    |    |    +--- com.android.support:support-annotations:26.1.0 …
Run Code Online (Sandbox Code Playgroud)

java gradle

5
推荐指数
0
解决办法
4271
查看次数

有没有办法用 Kotlin 在 Android 项目中使用 NPM 包

我想知道是否有办法在带有 Kotlin 的 Android 项目中使用 NPM 包。我知道有一个 Gradle 插件kotlin.js,它似乎可以与JetBrains 提供的演示等独立项目一起使用,但是当我尝试将它与 Android 一起使用时,出现此错误:

Cannot add extension with name 'kotlin', as there is an extension already registered with that name.
Run Code Online (Sandbox Code Playgroud)

甚至还有一个关于如何设置 kotlin/js的小教程,同样由 JetBrains 提供,但没有什么新东西。

我问是因为我想开始一个小的多平台项目,但它的核心部分是一个库,我前段时间写过,但它是用 Java 编写的,它严重依赖于BouncyCastle其他一些处理XML 序列化,所以没有运气。但是我在 JavaScript 中发现了一个类似的库。而且由于我不能使用任何 Java 依赖项,kotlin/multiplatform因此我有两个选择,要么找到一种方法让 Kotlin/JS 与 Android 项目一起工作,要么继续使用我喜欢的 React-Native,但我更喜欢 Kotlin。

javascript android kotlin

5
推荐指数
0
解决办法
802
查看次数

React Native 与打字稿无法解析模块

这很尴尬,但我不知道还能做什么。我想将我的小型 React Native 项目移植到 TypeScript,因此我使用 TypeScript 模板创建了一个空的 React Native 项目,并进行了调整tsconfig.json以使用自定义路径,例如@app,我尝试运行它。事实并非如此。这是昨天的事,我做了一些谷歌搜索,但是那些有同样问题的人建议清理打包程序,删除node_modules并重新安装所有软件包,例如这个,所以我这样做了,但它不起作用。

\n\n

这些是我重新安装的步骤react-native-cli(起初我以为问题出在过时的软件包上,但事实并非如此):

\n\n
    \n
  • npm uninstall -g react-native-cli
  • \n
  • yarn global add @react-native-community/cli
  • \n
\n\n

下面这些我已经关注过很多次了,我不记得确切的数字了:

\n\n
    \n
  • npx react-native init MyApp --template react-native-template-typescript
  • \n
  • yarn add redux redux-logger redux-thunk react-redux
  • \n
  • yarn add --dev @types/react @types/react-redux @types/redux-logger
  • \n
\n\n

然后进行更改tsconfig.json,所以它看起来像这样(我的更改标记为->):

\n\n
{\n  "compilerOptions": {\n    /* Basic Options */\n    "target": "esnext",                       /* Specify ECMAScript target version: …
Run Code Online (Sandbox Code Playgroud)

typescript react-native

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

Gradle配置错误

如果有两个独立的项目,但其中一个(比如项目A,这是一个Android应用程序)依赖于另一个(比如项目B,一个简单的java应用程序/库),没有它就无法工作.另一方面,项目B被视为一个独立的应用程序,并且自行构建和工作.每个项目都有settings.gradle一个根目录中的文件,该目录指向源目录.

这些项目的结构是相同的,如下所示:

project_name_root
  project_name
    src
    build.gradle
  build.gradle
  settings.gradle
Run Code Online (Sandbox Code Playgroud)

settings.gradle 有一条线 include :project_name'

问题是当我将Project Ause Project B作为模块构建时,它会抛出以下错误:

A problem occurred configuring project ':project-a'.
Could not resolve all dependencies for configuration ':project-a:_debugApk'.
Project :project-a declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :project-b.
Run Code Online (Sandbox Code Playgroud)

项目A settings.gradle包含:

include ':project-a', ':project-b'
project(':project-b').projectDir = new File(settingsDir, '../project-b-java')
Run Code Online (Sandbox Code Playgroud)

注意

如果项目B具有稍微不同的结构(下图),项目A将以项目B作为模块正常工作.但我更愿意坚持以前的结构.

project_name_root
  src
  build.gradle
Run Code Online (Sandbox Code Playgroud)

java android gradle

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

React Spring 延迟切换转换

标题可能不准确,但我会尝试在这里解释一下。我一直在模式下使用SwitchTransitionin-out,但由于我的动画主要是使用包中的钩子 useSpring 完成的react-spring,所以我宁愿React Transition Group完全放弃。但我不太确定如何达到同样的效果。当发生转换(对于路由)时,我需要旧组件保持可见(例如 2000 毫秒),而新组件已经可见。useTransition看看中的钩子,react-spring我看不出有什么办法可以为 引入延迟leave

const transition = useTransition(show, null, {
  from: { opacity: 0 },
  enter: { opacity: 1 },
  leave: { opacity: 0 },
  config: {
    duration: 200, // duration for the whole animation form start to end
  },
})
Run Code Online (Sandbox Code Playgroud)

里面SwitchTransition会是这样的:

<SwitchTransition mode='in-out'>
  <CSSTransition
    key={location.pathname}
    timeout={{ enter: 2000, exit: 400 }}
    unmountOnExit
    onEnter={()=>{callback}}
  >
    /* here go routes */
  </CSSTransition> …
Run Code Online (Sandbox Code Playgroud)

reactjs react-spring

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