小编Moh*_*ini的帖子

Android Studio Logcat是最佳实践

以相同的颜色跟踪Android logcat输出真的很难.是否有更改不同原木颜色的最佳做法?

ide android intellij-idea logcat android-studio

35
推荐指数
2
解决办法
8821
查看次数

如何将图标添加到我的存储库?

我发现Gitlab和SourceTree支持每个存储库的图标,使它们更加具体,一目了然.

这怎么可能?

git user-interface gitlab atlassian-sourcetree sourcetree

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

尝试在空对象引用上调用虚方法'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()'

我的应用程序由4个片段组成,作为使用的父片段加载的选项卡FragmentPagerAdapter.

问题是,当我运行应用程序并按下并重新打开应用程序时,我收到此错误日志:

FATAL EXCEPTION: main
java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' on a null object reference
    at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:1949)
    at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1965)
    at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620)
    at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
    at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:513)
    ...
Run Code Online (Sandbox Code Playgroud)

父片段内的代码行是:

viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)

ViewPageAdapter两个不为空!

我必须提到我Fragment的所有生命周期都在管理中,并且在适配器内部发生了null问题!并且当我使用Activityas而不是Fragment!!! 时,同样的适配器工作正常!

android nullpointerexception android-fragments fragmentpageradapter android-support-library

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

为什么当我将 github 操作 CI 用于 gradle 项目时,我会遇到“./gradlew: Permission denied”错误?

我有一个非常简单的 gradle 项目,当我设置 GitHub Actions CI 时,我遇到了这个错误:

Run ./gradlew clean dependencies
  ./gradlew clean dependencies
  shell: /bin/bash -e {0}
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java/8.0.222/x64
    JAVA_HOME_8.0.222_x64: /opt/hostedtoolcache/Java/8.0.222/x64
/home/runner/work/_temp/8f29e484-fbb4-4e29-a02a-679519aec24c.sh: line 1: ./gradlew: Permission denied
##[error]Process completed with exit code 126.
Run Code Online (Sandbox Code Playgroud)

continuous-integration github gradle github-actions

17
推荐指数
2
解决办法
3778
查看次数

Android Studio - java.io.IOException:无法生成v1签名

我将Android Studio更新到3.0 Canary 4之后的所有新版本后出现此错误.(我使用的是v3.0,因为它更快,并且不需要为Kotlin插孔.)

看起来构建流程存在问题,它无法为调试版本和发布版本生成或签署我的APK文件.

我也尝试删除我的debug.keystore,重新启动AndroidStudio和系统(!!!),但它没有解决.

这是一个完整的Gradle日志:

FAILURE: Build failed with an exception.

* What went wrong: Execution failed for task ':chris-app:packageDemoDebug'.
java.io.IOException: Failed to generate v1 signature

* Try: Run with --info or --debug option to get more log output.

* Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':chris-app:packageDemoDebug'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:243)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) …
Run Code Online (Sandbox Code Playgroud)

java android gradle kotlin android-studio

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

如何在Kotlin中注入原始变量?

我在我的Android应用程序中使用Dagger2 for DI,并使用此代码将类注入我的Activity中:

@field:[Inject ApplicationContext]
lateinit var context: Context
Run Code Online (Sandbox Code Playgroud)

但是,lateinitKotlin中的原始类型属性不允许使用修饰符(例如Boolean),我该怎么做呢?

@field:[Inject Named("isDemo")]
lateinit var isDemo: Boolean
Run Code Online (Sandbox Code Playgroud)

当我lateinit从这段代码中删除时,我收到此错误Dagger does not support injection into private fields

android dependency-injection kotlin dagger-2 kotlin-lateinit

10
推荐指数
2
解决办法
2081
查看次数

Travis Ci构建由Android SDK许可协议引起的错误

我有CircleCi的经验:

https://circleci.com/gh/mmirhoseini/fyber_mobile_offers/28

但我无法使用TravisCi上的相同存储库解决此许可证问题:

https://travis-ci.org/mmirhoseini/fyber_mobile_offers/builds/167852390

这是travis错误日志:

FAILURE:构建因异常而失败.

出了什么问题:配置项目':fyber-app'时出现问题.

您尚未接受以下SDK组件的许可协议:[SDK Patch Applier v1,Google Repository].

在构建项目之前,您需要接受许可协议并使用Android Studio SDK Manager完成缺少的组件的安装.或者,要了解如何将许可协议从一个工作站转移到另一个工作站,请访问http://d.android.com/r/studio-ui/export-licenses.html

Travis Ci截图

我知道这是一个许可证问题,但不知道如何解决它.这是我的.travis.yml文件:

language: android

sudo: required

android:
  components:
    - tools
    - platform-tools
    - build-tools-24.0.2
    - android-24
    - extra-android-m2repository
  licenses:
    - 'android-sdk-preview-license-.+'
    - 'android-sdk-license-.+'
    - 'intel-android-extra-license.+'

jdk:
  - oraclejdk8

before_install:
  - chmod +x gradlew

script:
  - ./gradlew build
Run Code Online (Sandbox Code Playgroud)

continuous-integration android travis-ci

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

什么是git全局配置文件中的.stCommitMsg?

我在我的git全局配置文件中找到了这个 ~/.gitconfig

...
[commit]
    template = {my user root folder}/.stCommitMsg
Run Code Online (Sandbox Code Playgroud)

我不知道用法是什么,而且我的用户根文件夹中没有此名称的文件!

有人知道它是如何工作的吗?是否可以为git提交一个模板?!

git

8
推荐指数
3
解决办法
2446
查看次数

包装MVP层是否有最佳实践?

我使用MVP方法完成了一些Android应用程序,

但我不确定在同一个包装中放置同一特征的不同层对象是否更好?或者在同一个包中使用图层名称打包所有不同功能的图层项?

(我的意思是这样的)

包截图

目前,我遵循第二条规则,但这是最佳做法吗?

编辑:这是我的项目的整个包!:)

包装更大的截图

java mvp android

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

Android活动中onCreate方法第二次实现的用法是什么?

我总是onCreateActivity生命周期内使用方法从保存状态启动或恢复,但最近发现还有另一个onCreate方法,其中包含PersistableBundle:

@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
    super.onCreate(savedInstanceState, persistentState);

}
Run Code Online (Sandbox Code Playgroud)

我发现自Android 21以来它已被添加.

有人可以在电话和使用时提供有关此方法的完整信息吗?

android activity-lifecycle android-activity

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