codeestx / geeknews Goto Github PK
View Code? Open in Web Editor NEW:books:A pure reading App based on Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide
:books:A pure reading App based on Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide
hi,最近看了很多关于dagger2的文章,但还是云里雾里的。
看了这个项目以后请问下为什么如下代码行不通呢?
public interface ActivityComponent {
Activity getActivity();
void inject(BaseActivity baseActivity);
}
方请解惑!thx!
在BaseActivity中的getActivityComponent()找不com.codeest.geeknews.di.component.DaggerActivityComponent;
你好,作者,看了你的代码让我受益匪浅,一个问题想不明白就是在BaseActivity中的mPresenter,是在哪里提供依赖的???
`
@ActivityScope
@component(dependencies = AppComponent.class, modules = ActivityModule.class)
public interface ActivityComponent {
Activity getActivity();
void inject(WelcomeActivity welcomeActivity);
void inject(MainActivity mainActivity);
void inject(ZhihuDetailActivity zhihuDetailActivity);
void inject(ThemeActivity themeActivity);
void inject(SectionActivity sectionActivity);
}
`
在ActivityModule和AppModule中都没有看到提供这个依赖的,
`@Module
public class ActivityModule {
private Activity mActivity;
public ActivityModule(Activity activity) {
this.mActivity = activity;
}
@Provides
@ActivityScope
public Activity provideActivity() {
return mActivity;
}
}`
`@Module
public class AppModule {
private final App application;
public AppModule(App application) {
this.application = application;
}
@Provides
@Singleton
@ContextLife("Application")
App provideApplicationContext() {
return application;
}
@Provides
@Singleton
RetrofitHelper provideRetrofitHelper() {
return new RetrofitHelper();
}
@Provides
@Singleton
RealmHelper provideRealmHelper() {
return new RealmHelper(application);
}
}`
我想了半天了,还是没找到为什么是自动实例这个变量,dagger2的demo也看了几个,没有类似的用法。很是困惑,请大神指教一下。谢谢
.addHeader("X-LC-Id",Constants.LEANCLOUD_ID)
.addHeader("X-LC-Sign",Constants.LEANCLOUD_SIGN)
是否需要优化下?
复现步骤:设置-->夜间模式-->无图模式-->日间模式-->侧拉菜单,
作者你好,我今天刚刚fork了你的代码,使用了Android Studio 2.2 版本编译了一次,但是编译失败了,显示出错的地方是测试的位置,请问是什么情况?
更改处如下:
buildToolsVersion "24.0.1" -> buildToolsVersion "24.0.2"
classpath 'com.android.tools.build:gradle:2.2.0-rc1 ' -> classpath 'com.android.tools.build:gradle:2.2.0'
错误如下:
Error:(4, 28) 错误: 程序包android.support.test不存在
Error:(5, 35) 错误: 程序包android.support.test.runner不存在
Error:(7, 24) 错误: 程序包org.junit.runner不存在
Error:(8, 30) 错误: 程序包org.testng.annotations不存在
Error:(17, 2) 错误: 找不到符号
符号: 类 RunWith
Error:(19, 6) 错误: 找不到符号
符号: 类 Test
位置: 类 ExampleInstrumentedTest
Error:Execution failed for task ':app:compileGoogleDebugAndroidTestJavaWithJavac'.
Compilation failed; see the compiler error output for details.
翻过ButterKnife的文档和issue,貌似都提到fragment中使用ButterKnife的时候需要调用unbind
http://jakewharton.github.io/butterknife/#reset
JakeWharton/butterknife#291
觉得挺麻烦的,后来我们项目view不多的地方就没用ButterKnife了
up主怎么看?
无论点击哪个列表项进入详情后,再返回,都是回到屏幕最后一项,而不是返回原本打开的那一项的位置,是故意这样设计的吗??
2-03 16:04:13.345 12377-12377/com.codeest.geeknews E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.codeest.geeknews, PID: 12377
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setVisibility(int)' on a null object reference
at com.codeest.geeknews.ui.gank.activity.TechDetailActivity$2.onProgressChanged(TechDetailActivity.java:91)
at com.tencent.smtt.sdk.SystemWebChromeClient.onProgressChanged(Unknown Source)
at com.android.webview.chromium.WebViewContentsClientAdapter.onProgressChanged(WebViewContentsClientAdapter.java:236)
at org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:197)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5665)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
空指针 com.codeest.geeknews.ui.gank.activity.TechDetailActivity tvProgress非空验证 setVisibility和getLayoutParams方法返回空指针了
关闭屏幕一段时间后(5min以内)再点亮屏幕时会看到程序被关闭了
FATAL EXCEPTION: main
Process: com.codeest.geeknews, PID: 13474
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 7(offset:7).state:23
device:nexus5x
system:Android 7.1.1
你好!widget相关的一些第三方库,能把链接也提供下吗?
如: compile 'com.victor:lib:1.0.4'等未在README中提及的库,谢谢!
I didn't find it.
日期日历无法显示出来
看到你的这个app还不错,就下载源码编译运行了一下,我发现在我的手机上崩溃了,log我忘记是啥(好像是xml加载异常),就是你的 com.codeest.geeknews.ui.zhihu.activity.ZhihuDetailActivity布局里面的16行导包错了吧,你是引入的
net.opacapp.multilinecollapsingtoolbar.CollapsingToolbarLayout 这个在我的手机(华为荣耀V8 KNT-AL20 正式版KNT-AL20C00B160 EMUI4.0)上会崩溃,把这个包改为android.support.design.widget.CollapsingToolbarLayout就正常了,
请问一下在Application里面有一个
public static synchronized App getInstance() {
return instance;
}
方法,为什么这里要用synchronized 关键字修饰
当从日期选择当天之前日期的日报内容后,然后再下来刷新,加载动画就停不下来了,不管是进入睡眠页面再回到日报页面都没停下来,除非退出重新进入。
Error:Could not find com.android.support:design:24.1.1.
Required by:
GeekNews:app:unspecified
GeekNews:app:unspecified > net.opacapp:multiline-collapsingtoolbar:1.2.2
Please install the Android Support Repository from the Android SDK Manager.
<a href="openAndroidSdkManager">Open Android SDK Manager</a>
material UP这个网站怎么用啊 感觉上那个面的风格都很好看,这个是可以下载下来素材还是直接只是看她的配色啊?
java.lang.IndexOutOfBoundsException
date = date.substring(0,idx).replace("T"," "); 有可能idx = -1
GoldListAdapter 第91行
TeachAdapter 第58行
索引越界有几个地方,好像是后台的数据格式可能有点不同,偶尔有些日期后面没有个“.” ,所以你
int idx =date.indexOf(".") 可能会等于-1,然后取子串就Crash了。
在取子串之前添加一句判断就ok了
if (idx > 0) date = date.substring(0, idx).replace("T", " ");
Gank福利页面 往下滑的过程中,程序会崩溃
在GirlFragment 第61行后面添加
mStaggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
//TODO 解决下拉崩溃的临时解决办法 java.lang.IllegalArgumentException: Pixel distance must be non-negative
//这个BUG已经有人提交给google,暂时解决办法
//set item prefetch enable false
mStaggeredGridLayoutManager.setItemPrefetchEnabled(false);
x5WebView有的手机使用不了,自动会调用原生的webview
我在google搜索的解决方法是:build.gradle 的defaultConfig添加
ndk {
abiFilters"armeabi","armeabi-v7a" , "arm64-v8a","x86","mips"
}
在收藏界面进入详情,然后在详情页面取消收藏,退回到收藏,这个条目还在,滑动删除报错。。大神这个功能没做吧?
你好,我在学习这个项目的架构,我发现项目BaseActivity中申明了mPresenter,通过在子类重写inject注入P层,但是,我发现在你设计所有module中并没有@provides提供的P层实例,请问你是怎么设计实现的呢
`/**
Created by codeest on 2016/8/2.
MVP activity基类
*/
public abstract class BaseActivity extends SupportActivity implements BaseView{
@Inject
protected T mPresenter;
protected Activity mContext;
private Unbinder mUnBinder;
`
realm文档看到说使用完realm后需要close,否则可能内存泄漏
代码中貌似没看到
我的项目中需要删除数据库操作,Realm.deleteRealm(configuration)
总是提示先close,所以关注了下这个问题
1、将你的项目下载下来,用as向模拟器中烧录,该应用可以安装成功,但是往真机中烧录,那么回报这个错误,Installation failed with message INSTALL_FAILED_UNKNOWN_SOURCES.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
但是,我的手机中之前没有安装过你的应用,这个是怎么回事?
2、通过你留下的apk下载链接,通过电脑下载apk,往真机中安装,结果如下:
C:\Users\Administrator>adb install C:\Users\Administrator\Desktop\geeknews.apk_1.1.0.apk
[100%] /data/local/tmp/geeknews.apk_1.1.0.apk
pkg: /data/local/tmp/geeknews.apk_1.1.0.apk
Failure [INSTALL_FAILED_UNKNOWN_SOURCES]
java.lang.OutOfMemoryError: Failed to allocate a 25165836 byte allocation with 16565788 free bytes and 15MB until OOM
at com.codeest.geeknews.util.ImageUtil.doBlur(ImageUtil.java:64)
at com.codeest.geeknews.ui.gank.adapter.TechAdapter$2.onResourceReady(TechAdapter.java:105)
at com.codeest.geeknews.ui.gank.adapter.TechAdapter$2.onResourceReady(TechAdapter.java:101)
at com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:525)
at com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:507)
at com.bumptech.glide.load.engine.EngineJob.handleResultOnMainThread(EngineJob.java:158)
at com.bumptech.glide.load.engine.EngineJob.access$100(EngineJob.java:22)
at com.bumptech.glide.load.engine.EngineJob$MainThreadCallback.handleMessage(EngineJob.java:202)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5290)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
请大神放个高德地图在上面
This project does not use the Gradle build system. We recommend that you migrate to using the Gradle build system.意思是我没通过Gradle管理么。直接从github clone下来的。是不是少了什么
rt
是我下载错了么
一直点击切换夜间模式会crash,报了一个空指针。还有就是怎么一直没数据,服务器502
OutofMemoryError thrown while trying to throe OutofMemotyError. no stack available. 好多页面都内存溢出了,这是图片处理不当的原因吗
After a successful download, you can not install
day 再加一天
首次运行程序后在日报里点击任一今日热闻退出程序后再打开程序点击之前点击过的热闻item,程序崩溃,跟踪debug查看貌似是点击item时mPresenter.insertReadToDB(mList.get(position).getId());添加记录时id重复
Hi
I see your project using Realm to cache. But when offline, I received the notice Data loading failure ヽ(≧Д≦)ノ
How to show Data when Offline
Thanks
@ContextLife("Application")
App getContext(); // 提供App的Context
Activity getActivity();
@Provides
@ActivityScope
public Activity provideActivity() {
return mActivity;
}
等等
这些代码没用到吧?
看的很是费解,尤其是ContextLife.java这个不是scope吧,自定义标记的话,文件名看起来好难懂
再提个小bug哈
设置->清除缓存 不能实时更新,清除一次,再浏览网页,产生的缓存就不能清除了
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.