Android Annotations配置
1.首先,一个框架需要有它的依赖包,Annotations框架需要使用两个jar包,我已经上传在了我的资源上,
Annotations框架下载
2.在新建的普通项目里面,新建一个compile-libs文件夹,将下载来的androidannotation-xx.jar添加到compile-libs文件夹下,将androidannotation-api-xx.jar添加到libs文件夹下,如图:
3.添加完依赖包之后,还要为其配置,在Project的build.gradle下的dependencies节点添加:
classpath ‘com.neenbedankt.gradle.plugins:Android-apt:1.4’,如图:
4.在Moudle的build.gradle下添加:
apply节点下:
apply plugin: 'android-apt'
def AAVersion = '3.2+'
dependencies节点下:
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
compile 'com.android.support:support-v4:23.4.0'
添加一段apt:
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName 'com.example.edu.annosimple'
}
}
在Moudle的build.gradle代码如下:
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = '3.2+'
android {
compileSdkVersion 23
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.example.edu.annosimple"
minSdkVersion 19
targetSdkVersion 23
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:23.4.0'
testCompile 'junit:junit:4.12'
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
compile 'com.android.support:support-v4:23.4.0'
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName 'com.example.edu.annosimple'
}
}
有些地方要注意:
5 MainActivity代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import org.androidannotations.annotations.EActivity;
@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
运行后,会报错:
一看就是要求我们把MainActivity_ 代替MainActivity
6.AndroidMainfest.xml文件中:
7。 在运行下:
好了,已经运行成功了;
8 . 接下来就简单使用下:
activity_main布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定1" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定2" />
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定3" />
</LinearLayout>
MainActivity代码如下:
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
@Click(R.id.btn)
void click(){
Toast.makeText(this, "你好啊", Toast.LENGTH_SHORT).show();
}
@Click({R.id.btn1,R.id.btn2,R.id.btn3})
void click(View btn) {
switch (btn.getId()){
case R.id.btn1:
Toast.makeText(this, "btn1", Toast.LENGTH_SHORT).show();
break;
case R.id.btn2:
Toast.makeText(this, "btn2", Toast.LENGTH_SHORT).show();
break;
case R.id.btn3:
Toast.makeText(this, "btn3", Toast.LENGTH_SHORT).show();
break;
}
}
}
9 。 运行效果:
出现的问题:
在Moudle的build.gradle添加代码如下:
packagingOptions {
exclude 'META-INF/maven/org.androidannotations/androidannotations-api/pom.xml'
exclude 'META-INF/maven/org.androidannotations/androidannotations-api/pom.properties'
exclude 'androidannotations-api.properties'
}