Tamicer / FastDownloader

基于Okhttp, 结合Retrofit,使用Okio ,简化处理I/O操作,加入多种设计模式,实现基于链式的android平台多线程下载利器!
Apache License 2.0
423 stars 116 forks source link

运行报空指针 #2

Closed tanshion closed 7 years ago

tanshion commented 7 years ago

code:

    package eirless.phy.com.downloadtest;

    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;

    import com.tamic.rx.fastdown.core.Download;

    public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            new Download.Builder()
                    .url("https://dl.bintray.com/neglectedbyboss/maven/com/tamic/fastdownloader/Android-FastDownloader/1.0.1/Android-FastDownloader-1.0.1-sources.jar")
                    .build(this)
                    .start();
        }
    }

gradle:

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 22
        buildToolsVersion "25.0.2"
        defaultConfig {
            applicationId "eirless.phy.com.downloadtest"
            minSdkVersion 14
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile 'com.android.support:appcompat-v7:22.2.1'
        testCompile 'junit:junit:4.12'
        compile 'com.tamic.fastdownloader:Android-FastDownloader:1.0.1'
        compile 'io.reactivex:rxjava:1.0.14'
        compile 'io.reactivex:rxandroid:1.0.1'
        compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
        compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
        compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
        compile 'com.squareup.okhttp3:okhttp:3.3.1'
        compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'

    }

======================

报错:

03-26 17:59:45.631 28976-28976/eirless.phy.com.downloadtest E/AndroidRuntime: FATAL EXCEPTION: main Process: eirless.phy.com.downloadtest, PID: 28976 java.lang.RuntimeException: Unable to start activity ComponentInfo{eirless.phy.com.downloadtest/eirless.phy.com.downloadtest.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'com.tamic.rx.fastdown.listener.IUIDownHandler com.tamic.rx.fastdown.listener.IDownloadListener.onHander()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2793) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6524) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831) Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'com.tamic.rx.fastdown.listener.IUIDownHandler com.tamic.rx.fastdown.listener.IDownloadListener.onHander()' on a null object reference at com.tamic.rx.fastdown.core.DLController.updateProgress(DLController.java:173) at com.tamic.rx.fastdown.core.DLTaskCenter.addTask(DLTaskCenter.java:782) at com.tamic.rx.fastdown.client.DLNormalClient.start(DLNormalClient.java:77) at com.tamic.rx.fastdown.core.Download.start(Download.java:208) at com.tamic.rx.fastdown.core.Download.start(Download.java:193) at eirless.phy.com.downloadtest.MainActivity.onCreate(MainActivity.java:19) at android.app.Activity.performCreate(Activity.java:6910) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)  at android.os.Handler.dispatchMessage(Handler.java:105)  at android.os.Looper.loop(Looper.java:156)  at android.app.ActivityThread.main(ActivityThread.java:6524)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)  03-26 17:59:45.653 28976-28976/eirless.phy.com.downloadtest I/Process: Sending signal. PID: 28976 SIG: 9

Tamicer commented 7 years ago

要init downlaoder

Tamicer commented 7 years ago

@tanshion private void init() {

    RxDownloadManager manager = RxDownloadManager.getInstance();
    manager.init(getBaseContext(), null);
    manager.setContext(getBaseContext());
    manager.setListener(new DLDownloadListener(getBaseContext()));

    DLNormalCallback normalCallback = new DLNormalCallback();
    if (manager.getClient() != null) {
        manager.getClient().setCallback(normalCallback);
    }

}