在我的Android应用程序中,我需要生成源代码并在应用程序中使用它.
为此我创建了任务genSources(使用教程)来生成源代码.如果单独运行它可以正常工作.
在我的情况下,我需要自动运行源代码生成.
从教程中我发现了以下命令:
compileJava.dependsOn(genSources)
但这是
申请插件的未知命令:'com.android.library'gradle
抛出以下异常:
Error:(35, 0) Could not find property 'compileJava' on project ':data'.
看起来它可以与apply plugin一起使用:'Java',
但我不能将这两个插件一起使用
如何在编译之前解决此问题并生成所需的源代码?
的build.gradle
apply plugin: 'com.android.library'
configurations {pmd}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
buildscript {
repositories {
maven {
url "http://repo1.maven.org/maven2/"
}
}
dependencies {
classpath group: 'net.sourceforge.fmpp', name: …Run Code Online (Sandbox Code Playgroud) 你能帮我理解构建android库的一般概念,并在用户的应用程序中使用它.
所以,有以下情况:
在android studio中有以下模块:
核心
数据
绘图
并且有一个模块
应用程序
依赖于上述模块.
app.gradle
dependencies {
compile project(':core')
compile project(':data')
compile project(':drawing')
}
Run Code Online (Sandbox Code Playgroud)
所以我可以从Android Studio运行该应用程序.
但我希望有类似AAR文件的东西,并将其包含在任何应用程序中,以便能够再次使用它而无需创建相同的模块.
我对Gradle不是很熟悉,所以我不确定是否可能以及如何做到这一点.
我有简单的应用程序.
这是MyActivity.java
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
}
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么onCreateOptionsMenu在手机上调用方法而不是在平板电脑上调用?
我有3个片段的活动和寻呼机.我使用标签进行切换.当我点击某个按钮时,我想用新的替换fragment0.仅当fragment0具有空布局时才有效.如果我在fragment0的布局中设置一些内容(必须有listview)抛出异常:
java.lang.IllegalStateException: Fragment already active
at android.support.v4.app.Fragment.setInitialSavedState(Fragment.java:503)
at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:110)
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)
Run Code Online (Sandbox Code Playgroud)
我使用以下布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/all_exp_frag"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/all_expenses"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
活动:
public class Activity extends FragmentActivity {
private List<Fragment> fragments;
private MyPagerAdapter pagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
fragments = asList(new Fragment0(), new Fragment1(), new Fragment2());
// initialize pager, etc.
pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), pager);
}
// handle add new fragment button
@Override
public boolean onOptionsItemSelected(MenuItem item) {
pagerAdapter.replaceCurrentFragment(new Fragment3());
}
public class …Run Code Online (Sandbox Code Playgroud) 我是Android的新手,我真的不明白为什么Fragment动态添加的内容(例如在按钮点击后添加的某些图像)在滚动一些Fragments然后再返回后消失了.
有非常简单的代码Activity和Fragment:
public class MyActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
final CustomAdapter adapter = new CustomAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
}
class CustomFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getView().findViewById(R.id.clickMeButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getView().findViewById(R.id.image).setVisibility(View.VISIBLE);
}
});
}
}
class …Run Code Online (Sandbox Code Playgroud) java android android-fragments android-viewpager android-pageradapter