Giter Site home page Giter Site logo

phphub-android's Introduction


 创造不息,交付不止

PHPHub-Android

Build Status License

相关项目

项目介绍

此项目为 PHPHub Android 客户端

项目架构采用 MVP 模式

PHPHub Android APK 下载

运行环境

Min SDK verison 4.0+

Android Studio version 1.3.2

Gradle version 2.4

安装方式

1、在指定的目录下执行

git clone https://github.com/CycloneAxe/phphub-android.git

2、复制 gradle.properties.example 为 gradle.properties 并编辑里面的相关信息

3、将项目导入 Android Studio 运行即可

测试环境下用户登陆二维码

功能简述

  • 渠道包构建
  • 使用 nucleus 简化 MVP 架构
  • 使用 RxJava 处理 API 请求返回数据
  • 使用 SmartTabLayout 实现带 Icon 的选项卡切换
  • 消息提醒
  • 使用 Account Manager 存储登陆用户信息
  • WebView 图片点击事件注入
  • 二维码扫描登陆
  • Deep Link 实现

项目依赖

项目名称 项目信息
android.support.* Android Support Library
Dagger 2 Android 依赖注入组件
retrofit 网络请求组件
retroauth 基于 Retrofit, 用于简化处理账户认证请求
butterknife View注入框架
icepick 一个通过注解来方便我们保存和恢复 Android Instance 状态的 Library
fresco Facebook 推出的 Android 图片加载库
SmartTabLayout 带有滑动反馈动效的 Tab 指示器
smart-adapters 简化 ListView / RecyclerView Adapter 的库
MultiStateView 根据状态显示不同 content 的 Android 视图
BGABadgeView-Android Android 徽章控件
RxJava RxJava 是由 Netflix 开发的响应式扩展(Reactive Extensions)的Java实现
RxAndroid RxAndroid 是 RxJava 的一个针对 Android 平台的扩展
logger 一个简单、漂亮、功能强大的 Android 日志程序
nucleus 简化 MVP 的库
Android-MaterialRefreshLayout 下拉刷新控件
LeakCanary Android 内存泄漏检测工具
android-percent-support-extend Google 百分比布局库的扩展
Barcode Scanner 二维码扫描
prettytime 时间格式化
prefser Shared Preferences Helper
Android-TopScrollHelper 点击系统栏自动滚动到顶部
sweet-alert-dialog A beautiful and clever alert dialog
android-saripaar 表单验证
DeepLinkDispatch 一个简单的、基于注解的 Deep Link 处理库
otto Event Bus, 用来简化应用组件之间的通信
android-iconify 一个将 Aweome ICON 和 Android 结合起来的项目
Localify 从文件中加载内容的Android类库
PhotoDraweeView 基于 Fresco 的图片缩放控件
Velodrome onActivityResult handlers for Android

参与贡献

晓晓鱼

刘相轩

###License

Copyright 2015 EST Group

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

phphub-android's People

Contributors

aufree avatar cycloneaxe avatar nauxliu avatar readmecritic avatar summerblue avatar xiaoxiaoyu avatar zhangxiaoxia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phphub-android's Issues

Android编译非常慢

-Xms2048m
-Xmx4096m
-XX:MaxPermSize=750m
-XX:ReservedCodeCacheSize=450m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=100
-da
-Djna.nosys=true
-Djna.boot.library.path=

-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Didea.paths.selector=AndroidStudio1.5
-Didea.platform.prefix=AndroidStudio

androidstudio 2.0 编译出错。

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForFirRelease'.

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/com.squareup.okio/okio/pom.xml
File1: /Users/fyj/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.4.0/5b72bf48563ea8410e650de14aa33ff69a3e8c35/okio-1.4.0.jar
File2: /Users/fyj/学习资料/git/phphub-android/app/build/intermediates/exploded-aar/com.umeng/message/2.4.1/jars/libs/com.umeng.message.lib_v2.4.1.jar

无数据

直接运行代码,没有任何数据

工程无法编译

Error:(27, 0) Could not find property 'APP_CLIENT_ID' on ProductFlavor_Decorated{name=main, dimension=null, minSdkVersion=ApiVersionImpl{mApiLevel=14, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=22, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=1000, versionName=1.0.0, applicationId=org.estgroup.phphub, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={GIT_SHA=com.android.builder.internal.ClassFieldImpl@69e1e112}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}.
Open File

编译不通过

Error:(27, 0) Could not find property 'APP_CLIENT_ID' on ProductFlavor_Decorated{name=main, dimension=null, minSdkVersion=ApiVersionImpl{mApiLevel=14, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=22, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=1000, versionName=1.0.0, applicationId=org.estgroup.phphub, testApplicationId=null, testInstrumentationRunner=null, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={GIT_SHA=com.android.builder.internal.ClassFieldImpl@69e1e112}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}.
Open File

没有数据

改为debug模式没有数据显示,请问怎么解决?

Nucleus + Dagger 2

你好。请教个问题。
这边项目构建不通过。请问你是解决Nucleus + Dagger 2的问题呢?
在我的项目的基类使用

BaseActivity<PresenterType extends Presenter> extends NucleusAppCompatActivity<PresenterType>

as2.1编译出错~

`xecution failed for task ':app:transformResourcesWithMergeJavaResForFirRelease'.

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/com.squareup.okio/okio/pom.xml`

小白提问:编译问题

Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android.
Dependency commons-logging:commons-logging:1.1.1 is ignored for debugAndroidTest as it may be conflicting with the internal version provided by Android.
Dependency commons-logging:commons-logging:1.1.1 is ignored for developmentDebug as it may be conflicting with the internal version provided by Android.
Dependency commons-logging:commons-logging:1.1.1 is ignored for FirRelease as it may be conflicting with the internal version provided by Android.

这个插件一直报错def gitSha = 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim()

org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceExpressionImpl cannot be cast to org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral
java.lang.ClassCastException: org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrReferenceExpressionImpl cannot be cast to org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.parse(GradleDslParser.java:157)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.access$100(GradleDslParser.java:50)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser$1.visitApplicationStatement(GradleDslParser.java:99)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrApplicationStatementImpl.accept(GrApplicationStatementImpl.java:37)
at org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiElementImpl.acceptGroovyChildren(GroovyPsiElementImpl.java:77)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrBlockImpl.acceptChildren(GrBlockImpl.java:82)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.parse(GradleDslParser.java:91)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.parse(GradleDslParser.java:86)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.access$000(GradleDslParser.java:50)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser$1.visitMethodCallExpression(GradleDslParser.java:94)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrMethodCallExpressionImpl.accept(GrMethodCallExpressionImpl.java:51)
at org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiElementImpl.acceptGroovyChildren(GroovyPsiElementImpl.java:77)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.blocks.GrBlockImpl.acceptChildren(GrBlockImpl.java:82)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.parse(GradleDslParser.java:91)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.parse(GradleDslParser.java:86)
at com.android.tools.idea.gradle.dsl.parser.GradleDslParser.parse(GradleDslParser.java:53)
at com.android.tools.idea.gradle.dsl.model.GradleBuildModel$GradleBuildDslFile$1.process(GradleBuildModel.java:181)
at com.android.tools.idea.gradle.dsl.model.GradleBuildModel$GradleBuildDslFile$1.visitMethodCallExpression(GradleBuildModel.java:158)
at org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path.GrMethodCallExpressionImpl.accept(GrMethodCallExpressionImpl.java:51)
at org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementVisitor.visitElement(GroovyPsiElementVisitor.java:34)
at com.intellij.psi.impl.PsiElementBase.accept(PsiElementBase.java:274)
at com.intellij.psi.impl.source.tree.SharedImplUtil.acceptChildren(SharedImplUtil.java:196)
at com.intellij.psi.impl.source.PsiFileImpl.acceptChildren(PsiFileImpl.java:779)
at com.android.tools.idea.gradle.dsl.model.GradleBuildModel$GradleBuildDslFile.parse(GradleBuildModel.java:152)
at com.android.tools.idea.gradle.dsl.parser.GradleDslFile.parse(GradleDslFile.java:69)
at com.android.tools.idea.gradle.dsl.model.GradleBuildModel.parseBuildFile(GradleBuildModel.java:54)
at com.android.tools.idea.gradle.dsl.model.GradleBuildModel.get(GradleBuildModel.java:48)
at xyz.marcato.ideaplugin.methodscount.MethodsCountFoldingBuilder.buildFoldRegionsWithGradleBuildModel(MethodsCountFoldingBuilder.kt:24)
at xyz.marcato.ideaplugin.methodscount.MethodsCountFoldingBuilder.buildFoldRegions(MethodsCountFoldingBuilder.kt:63)
at com.intellij.lang.folding.LanguageFolding.buildFoldingDescriptors(LanguageFolding.java:83)
at com.intellij.lang.folding.CompositeFoldingBuilder.buildFoldRegions(CompositeFoldingBuilder.java:60)
at com.intellij.lang.folding.LanguageFolding.buildFoldingDescriptors(LanguageFolding.java:83)
at com.intellij.codeInsight.folding.impl.FoldingUpdate.getFoldingsFor(FoldingUpdate.java:265)
at com.intellij.codeInsight.folding.impl.FoldingUpdate.getFoldingsFor(FoldingUpdate.java:250)
at com.intellij.codeInsight.folding.impl.FoldingUpdate.getUpdateResult(FoldingUpdate.java:120)
at com.intellij.codeInsight.folding.impl.FoldingUpdate.access$000(FoldingUpdate.java:56)
at com.intellij.codeInsight.folding.impl.FoldingUpdate$2.compute(FoldingUpdate.java:108)
at com.intellij.codeInsight.folding.impl.FoldingUpdate$2.compute(FoldingUpdate.java:103)
at com.intellij.psi.impl.PsiParameterizedCachedValue.doCompute(PsiParameterizedCachedValue.java:53)
at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:200)
at com.intellij.psi.impl.PsiParameterizedCachedValue.getValue(PsiParameterizedCachedValue.java:43)
at com.intellij.psi.util.CachedValuesManager.getParameterizedCachedValue(CachedValuesManager.java:96)
at com.intellij.codeInsight.folding.impl.FoldingUpdate.updateFoldRegions(FoldingUpdate.java:102)
at com.intellij.codeInsight.folding.impl.CodeFoldingManagerImpl.updateFoldRegions(CodeFoldingManagerImpl.java:344)
at com.intellij.codeInsight.folding.impl.CodeFoldingManagerImpl.updateFoldRegionsAsync(CodeFoldingManagerImpl.java:326)
at com.intellij.codeInsight.daemon.impl.CodeFoldingPass.doCollectInformation(CodeFoldingPass.java:42)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:67)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:444)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1103)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:435)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:452)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:432)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:408)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask.exec(JobLauncherImpl.java:189)
at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:260)
at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:858)
at jsr166e.ForkJoinPool.scan(ForkJoinPool.java:1687)
at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1642)
at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:109)

fresco的问题

年前的时候还是能跑得起来的,后来经过检查发现是项目依赖的umeng的一个repo的问题,估计官方已经不再支持这个repo或者是什么原因。
这个项目如果不改这个地方根本跑不起来。

这个错误该怎么解决?

Error:(27, 1) A problem occurred evaluating project ':app'.

Could not find property 'APP_CLIENT_ID' on ProductFlavor_Decorated{name=main, dimension=null, minSdkVersion=ApiVersionImpl{mApiLevel=14, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=22, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=1000, versionName=1.0.0, applicationId=org.estgroup.phphub, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={GIT_SHA=com.android.builder.internal.ClassFieldImpl@42026e1f}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}.

编译失败

Warning:WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for debugAndroidTest as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for developmentDebug as it may be conflicting with the internal version provided by Android.
Warning:WARNING: Dependency commons-logging:commons-logging:1.1.1 is ignored for FirRelease as it may be conflicting with the internal version provided by Android.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.