小编Tij*_*jee的帖子

访问Cocoapods resource_bundles

我正在努力使用我自己的pod中定义的本地化资源.

此pod使用Base Internationalization和以下文件:

Base.lproj
|- Localizable.strings
|- MyViewController.xib

fr.lproj
|- Localizable.strings
|- MyViewController.strings
Run Code Online (Sandbox Code Playgroud)

这是他们在我的定义podspec:

spec.resources = "MySDK/*.lproj/*"
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中Podfile,我的pod被定义为本地依赖项:

pod 'MySDK', :path => '../MySDK'
Run Code Online (Sandbox Code Playgroud)

运行后pod install,我可以看到完全相同的 lproj文件夹Development Pods/MySDK/Resources/MySDK.

MyViewController.xib 完全加载和本地化,我可以更改手机上的语言,文本也会相应更改.

为了使用本地化字符串,我在SDK pod中定义了一个函数:

public func NSLocalizedIntentString(key: String) -> String {
    let sdkBundle = NSBundle(forClass: MySDKClass.self)
    return NSLocalizedString(key, tableName: nil, bundle: sdkBundle, value: key, comment: "")
}
Run Code Online (Sandbox Code Playgroud)

它可以工作,除了它只使用Base.lproj在手机或模拟器上选择的语言中定义的字符串.

我改变了我podspec的意思:

spec.resource_bundles = {
    "MySDK" => ["MySDK/*.lproj"]
}
Run Code Online (Sandbox Code Playgroud)

为了从代码加载bundle,但现在什么都不起作用,XIB无法加载.这很奇怪,因为 …

ios cocoapods

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

Gradle 依赖项未与依赖模块共享

语境

我的项目中有两个模块:

  • Java/Kotlin 模块 common
  • Android/Kotlin 模块 app

common依赖Koin,这是一个用于依赖注入的 Kotlin 库:

dependencies {
  implementation 'org.koin:koin-core:1.0.2'
}
Run Code Online (Sandbox Code Playgroud)

用法示例:

class MyPresenter: KoinComponent {
  ...
}
Run Code Online (Sandbox Code Playgroud)

app 不依赖于 Koin 库,因为我不需要在 Android 代码中注入任何东西,所有注入都在公共代码中(演示者、拦截器等)。

app取决于common

dependencies {
  implementation project(':common')
}
Run Code Online (Sandbox Code Playgroud)

用法示例:

class MyFragment {
  private val presenter = MyPresenter()
}
Run Code Online (Sandbox Code Playgroud)

问题

我可以编译common,我可以在 中运行单元测试common,但是当我尝试编译时出现app此错误:

无法解析以下类的超类型。请确保您在类路径中具有所需的依赖项:class xxx.common.presenter.MyPresenter,未解析的超类型:org.koin.standalone.KoinComponent

当我跑 ./gradlew :app:dependencies

debugCompileClasspath
+--- project :common
debugRuntimeClasspath
+--- project :common
|    +--- org.koin:koin-core:1.0.2
Run Code Online (Sandbox Code Playgroud)

依赖项在runtime配置中,但在配置中缺失 …

android gradle koin

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

标签 统计

android ×1

cocoapods ×1

gradle ×1

ios ×1

koin ×1