注解无效
检查下你的工程中有没有使用apply plugin: 'android-apt',如果有的话将其转换为annotationProcessor。
检查下annotationProcessor 和 compile 版本是否一致,不一致的话将导致生成代理文件失败
如果你是Android studio的module中引用的Aria,那么你还需要再app模块中添加同样的导入代码
compile 'com.arialyy.aria:aria-core:{version code}' annotationProcessor 'com.arialyy.aria:aria-compiler:{version code}'
如果以上设置都无效或控制台打印下面的错误
Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
请在app的build.gradle文件的defaultConfig块中添加以下代码
android { compileSdkVersion 26 buildToolsVersion "26.0.2" defaultConfig { .... javaCompileOptions { annotationProcessorOptions { includeCompileClasspath true } } } ... }
如果是使用的kotlin,那请去掉Aria注解方法的
internal
修饰符如果使用的是低版本的kotlin,请尝试将kotlin升级为最新版本
注册的类中至少有一个被
@Download
或@Upload
或@DownloadGroup
注解的方法(原则是:哪个地方有注解就在哪个地方进行注册)public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 进行注册 Aria.download(this).register(); } // 如果当前类中没有方法被`@Download`或`@Upload`或`@DownloadGroup`注解,那么就会提示没有Aria的注解方法 @Download.onTaskComplete void onComplete(DownloadTask task) { Log.d(TAG, "complete"); } }
Fragment
\Dialog
\Service
\PopupWindow
等类中,不要使用Context或Activity
等类public class Fragmnt extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.activity_main, container); Aria.download(this).register(); // 正确的写法 Aria.download(getActivity()).register(); // 错误 Aria.download(getContext()).register(); // 错误 return rootView; } }
如果都不是的话,build文件时,点击as右下角的gradle console窗口,看看报什么错误(如果有错误,可以的话,麻烦在Issues留言给我)
终极方案,不使用注解,直接使用回调,需要
3.8.11
以上版本public class A extends Activity implements DownloadTaskListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Aria.download(this).register(); } }
支持的回调有: | 任务类型 | 事件回调 | | ---- | ---- | | 普通下载任务 | DownloadTaskListener | | 组合任务 | DownloadGroupTaskListener | | 组合任务子任务 | SubTaskListener | | M3U8 peer | M3U8PeerTaskListener | | 上传任务 | UploadTaskListener |