小编Jor*_*dez的帖子

如何在Android Studio中没有风味的库模块中修复“无法解析符号”?

这是我的项目设置:

  • 我在 Android Studio 项目中有 3 个模块(应用程序、功能和主题):

    Android Studio 模块

  • 重要提示:只有:app:theme模块有风格。:feature模块没有特色

    flavorDimensions("product")
    
    productFlavors {
        paid { }
        demo { }
        free { }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这使得构建变体看起来像这样:

    在此处输入图片说明

  • 这是依赖图:

    在此处输入图片说明

所以:

  • :应用模块可以看到所有的资源:主题模块,因为所有构建变量匹配

  • 由于:feature模块没有风格,因此我这种方式声明了:theme依赖项:

    implementation project(configuration: 'default', path: ':theme')

    这使项目成功构建?? ?

  • 但是,:feature模块看不到:theme模块中定义的资源。

  • 如果我configuration: 'default'从依赖项声明中删除,则会收到此错误:

    ERROR: Unable to resolve dependency for ':feature@debug/compileClasspath': Could not resolve project :theme.
    
    Run Code Online (Sandbox Code Playgroud)
  • 这是:feature模块中的布局文件:

    在此处输入图片说明

  • product_name字符串在宣布:主题 …

android

7
推荐指数
1
解决办法
163
查看次数

如何在Android Studio上创建jniLibs文件夹?

在此输入图像描述

嗨,我使用Android Studio.

我想创建jniLibs文件夹,但我的项目没有它.

我知道jniLibs是自动创建的,不是吗?

这是一个gradle设置吗?

android

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

如何从Android画布中获取触摸形状(弧形)?

我正在构建一个自定义视图。

它有4条弧线。

我正在使用RectF形状绘制弧线,期间onDraw()

// arcPaint is a Paint object initialized
// in the View's constructor
arcPaint.setStrokeWidth(strokeWidth);
arcPaint.setColor(arcColor);

// Draw arcs, arc1, arc2, arc3 & arc4 are
// measured and initialized during onMeasure()
canvas.drawArc(arc1, startAngle, arc1Angle, false, arcPaint);
canvas.drawArc(arc2, startAngle, arc2Angle, false, arcPaint);
canvas.drawArc(arc3, startAngle, arc3Angle, false, arcPaint);
canvas.drawArc(arc4, startAngle, arc4Angle, false, arcPaint);
Run Code Online (Sandbox Code Playgroud)

所以,结果是:

在此输入图像描述

如果我RectF使用canvas.drawRect()以下代码绘制对象:

canvas.drawRect(arc1, arcPaint);
canvas.drawRect(arc2, arcPaint);
canvas.drawRect(arc3, arcPaint);
canvas.drawRect(arc4, arcPaint);
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述

将圆弧和矩形绘制在一起,得出:

在此输入图像描述

我知道我可以重写该onTouchEvent()方法并获取 X、Y 坐标,但我不知道每个坐标如何与画布中绘制的每个形状相关。

我想做的是检测何时触摸 内的圆弧而不是矩形canvas …

android android-custom-view android-canvas

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

如何使用 dagger.android @Inject 抽象 BaseActivity 及其子类?

我正在使用Dagger 2 中的新dagger.android包在我的项目中注入 Android 依赖项。

  • 我需要我所有的活动都是抽象的子类 BaseActivity
  • 在我的BaseActivity我有要注入的成员变量。这边走:

    abstract class BaseActivity : AppCompatActivity() {
        @Inject
        lateinit var prefs: MyPreferenceDataStore
        ...// more @Injected members
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 我这样做是因为我希望的子类BaseActiviy可以访问注入的成员BaseActivity

    class SubClassActivity : BaseActivity() {
        override fun onCreate(savedInstanceState: Bundle) {                
            val x = prefs.getXXX //use prefs variable from parent class
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 这是我的应用程序组件:

    @Singleton @Component(modules = arrayOf(
                    ApplicationModule::class,
                    ActivityBindingModule::class,
                    AndroidSupportInjectionModule::class
                ))
    interface ApplicationComponent {
        @Component.Builder interface Builder {
            @BindsInstance
            fun application(application: Application): Builder
            fun build(): …
    Run Code Online (Sandbox Code Playgroud)

android dependency-injection kotlin dagger-2

4
推荐指数
1
解决办法
5164
查看次数

使用AppCompat Library进行ActionBar支持

我需要在Android 2.x中实现操作栏我已经尝试过这篇文章并设置了这篇官方文章中提到的支持库.

以下是我使用appcompat支持库实现ActionBar所遵循的步骤:

首先,我使用以下配置创建项目(我不创建图标和默认活动):

最低要求SDK: API 10:Android 2.3.3(Gingerbread)
目标SDK: API 19:Android 4.4
编译: API 10:Android 2.3.3(Gingerbread)
主题:无

之后,在Project properties => Android => Library中添加了android-support-v7-appcompat库项目.

在此之后,我在使用appcompat库的项目中得到了128个这样的错误.所有这些都与Holo主题有关:

[2013-12-06 13:24:24 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\styles_base.xml:24: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar'.  
Run Code Online (Sandbox Code Playgroud)

请注意,错误仅发生在appcompat库项目中的values-v14values-v11文件夹中.以下是我得到的两个错误示例:

[2013-12-06 13:24:24 - UsingSupportActionBar] C:\dev\Java\android\adt-bundle-windows-x86_64\sdk\extras\android\support\v7\appcompat\res\values-v14\styles_base.xml:100: error: Error retrieving parent for item: No resource found …
Run Code Online (Sandbox Code Playgroud)

java android android-appcompat android-actionbar android-actionbar-compat

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

如何从java模块中的gradle.properties读取值?

我在 Android Studio 中有一个包含几个模块的项目。

  • 模块app。和apply plugin: 'com.android.application'
  • 模块androidLibrary。和apply plugin: 'com.android.library'
  • 模块javaLibrary。和apply plugin: 'java'

我想在项目gradle.properties文件中声明一些变量并能够从javaLibrary模块中读取它们。

我已根据本文档通过以下方式声明了属性......

  • mysuperhost=superhost
  • systemProp.mysuperhost=superhost
  • ORG_GRADLE_PROJECT_mysuperhost=superhost
  • org.gradle.project.mysuperhost=superhost

...并尝试以这种方式阅读它们,但没有成功:

  • System.getenv("mysuperhost");
  • System.getProperty("mysuperhost");

我知道如何从BuildConfig类中读取属性,但这是应用程序模块中生成的类(带有apply plugin: 'com.android.application'),因此这不适用于这种特殊情况。

java android gradle android-gradle-plugin gradle-plugin

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

获取当前分支的最后N个提交并将它们应用于另一个分支

这是我的情景:

  • 我在master分公司
  • master分支机构feature1开始创建分支
  • 添加了几个提交,并添加了feature1其他提交master
  • 现在,我要带ONLY最后N从提交feature1并应用它们master.

我想离开这个:

                       (branch) feature1: f1 > f2 > f3 > f4
                      /
(branch) master: A > B > C > D
Run Code Online (Sandbox Code Playgroud)

对此:

                       (branch) feature1:  f1 > f2 > f3 > f4
                      /
(branch) master: A > B > C > D > f3 > f4
Run Code Online (Sandbox Code Playgroud)

git github git-branch

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

通过Neo4j中的给定节点查找所有简单循环

我正在使用图表,最近知道neo4j.

neo4j能帮我找到通过图中给定节点的所有简单循环吗?

通过实施Johnson算法的修改,我已经可以在java/ pythoncode中执行此操作.

这只是我创建的图表的一个示例,是可以在neo4j数据库上执行的Cypher代码:

CREATE (John:Person { name : '@john',facebook: 'facebook.com/john'})
CREATE (Josh:Person { name : '@josh',facebook: 'facebook.com/josh'})
CREATE (Dan:Person { name : '@dan',facebook: 'facebook.com/dan'})
CREATE (Kenny:Person { name : '@kenny',facebook: 'facebook.com/kenny'})
CREATE (Bart:Person { name : '@bart',facebook: 'facebook.com/bart'})
CREATE (Mike:Person { name : '@mike',facebook: 'facebook.com/mike'})
CREATE (Jenny:Person { name : '@jenny',facebook: 'facebook.com/jenny'})
CREATE (Frank:Person { name : '@frank',facebook: 'facebook.com/frank'})
CREATE (Erick:Person { name : '@erick',facebook: 'facebook.com/erick'})
CREATE (Lynda:Person { name : …
Run Code Online (Sandbox Code Playgroud)

algorithm graph neo4j graph-algorithm cypher

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

如何使用dagger.android @Inject成员在BaseActivity中?

这是我的情况:

  • 我希望所有活动都可以继承 BaseActivity
  • 在中BaseActivity,我要注入Navigator(它有助于我管理Fragments后退栈并在活动之间进行导航):

    abstract class BaseActivity : DaggerAppCompatActivity() {
        @Inject
        lateinit var navigator: Navigator
    
        @Inject
        lateinit var prefs: SharedPreferences // injected via AppModule.kt, see below.
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • Navigator类需要FragmentManager在其构造函数:

    class Navigator @Inject constructor(
        val fragmentManager: FragmentManager) {
        // class body
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 我想从中提供FragmentManager一个BaseActivity对象BaseActivityModule

    @Module
    class BaseActivityModule {
        @PerActivity
        @Provides
        fun provideFragmentManager(baseActivity: BaseActivity): FragmentManager {
            return baseActivity.supportFragmentManager
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

这是我其余的组件和模块:

android dependency-injection kotlin dagger-2

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