在Android Studio中编译我的应用程序以进行调试时,我收到以下错误:
Failed to run command:
C:\Users\Farbod\Android-SDK\build-tools\21.1.2\aapt.exe s -i C:\Users\Farbod\AndroidStudioProjects\MyApp\app\src\main\res\drawable-hdpi\img_myImage.png -o C:\Users\Me\AndroidStudioProjects\MyApp\app\build\intermediates\res\debug\drawable-hdpi-v4\img_myImage.png
Error Code:
42
Output:
C:\Users\Me\AndroidStudioProjects\MyApp\app\src\main\res\drawable-hdpi\img_myImage.png: libpng warning: IDAT: Too many IDATs found
libpng error: Read Error
:app:mergeDebugResrouces FAILED
Run Code Online (Sandbox Code Playgroud)
我已经检查过我的所有文件都是.png格式,我不确定是什么原因.
我试图在 Android Studio 中运行我的 android 项目,但我不能这样做。
我收到此错误:
Error:(23, 47) error: lambda expressions are not supported in -source 1.7
(use -source 8 or higher to enable lambda expressions)
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
Run Code Online (Sandbox Code Playgroud)
我正在使用 JDK 1.8。
知道为什么会这样吗?任何决议。
PS:Stack 中有几个类似的问题,但没有一个解决了这个问题。请在标记重复之前了解问题。
我正在开发显示图像的应用程序,我需要创建一个以1:1宽高比显示大图像的视图.
首先,我有一些72x72分辨率的缩略图.我已经把他们在ImageView,但即使我添加参数android:width="fill_parent"和android:height="wrap_content",图像也不会不的大小ImageView,但只在中间居中.
我尝试添加参数android:scaleType="centerCrop",水平调整图像大小,但高度保持不变.
我怎么能设置我的ImageView所有设备在所有设备上的宽度与父视图一样,它也应该是高度.
我可以以编程方式执行此操作,但我需要能够以XML格式执行此操作.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
// The ImageView I am talking about above
<ImageView
android:id="@+id/invitation_imageview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:scaleType="centerCrop"
android:src="@drawable/face_woman_smile" />
<ImageView
android:id="@+id/invitation_avatar_view_1"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:src="@drawable/face_woman_smile"
android:scaleType="center"
android:layout_margin="1dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我已经设置样式为我CardView的style.xml文件,但它给我的错误在编译时app:cardCornerRadius,app:cardElevation,应用:cardPreventCornerOverlap和app:contentPadding属性.CardView在Android中设置样式的正确方法是什么?
以下是我的一些代码:
<style name="CardViewStyle" parent="CardView">
<item name="android:layout_marginBottom">@dimen/cardMarginVertical</item>
<item name="android:layout_marginTop">@dimen/cardMarginVertical</item>
<item name="android:layout_marginLeft">@dimen/cardMarginHorizontal</item>
<item name="android:layout_marginRight">@dimen/cardMarginHorizontal</item>
<item name="app:cardCornerRadius">2dp</item>
<item name="app:cardElevation">2dp</item>
<item name="app:cardPreventCornerOverlap">false</item>
<item name="app:contentPadding">0dp</item>
<item name="android:layout_width">match_parent</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我最近意识到Kotlin中有两个非常相似的函数来获取a的一部分List,但是我不确定其中的区别:
返回此列表中指定的fromIndex(包括)和toIndex(不包括)之间的视图。返回列表由该列表支持,因此返回列表中的非结构更改会反映在此列表中,反之亦然。
基本列表中的结构更改使视图的行为不确定。
而文档的slice说明:
返回一个列表,其中包含位于指定索引范围内的索引处的元素。
要么
返回包含指定索引处的元素的列表。
似乎关键的区别在于第一个返回列表的“ 部分视图 ”,并且是否反映了非结构性更改?但是我不太确定这意味着什么。
我查看了该slice函数的源代码:
public fun <T> List<T>.slice(indices: IntRange): List<T> {
if (indices.isEmpty()) return listOf()
return this.subList(indices.start, indices.endInclusive + 1).toList()
}
Run Code Online (Sandbox Code Playgroud)
但是它从subList函数返回一个列表。
有人可以解释这两个功能之间的区别,以及您何时想使用其中一个?
使用以下代码(取自android-quickstart),如果您拍摄多张照片,此代码可以生成多个具有相同名称的文件.如何修改以确保替换具有相同名称的文件?
public class MainActivity extends Activity implements ConnectionCallbacks,
OnConnectionFailedListener {
private static final String TAG = "android-drive-quickstart";
private static final int REQUEST_CODE_CAPTURE_IMAGE = 1;
private static final int REQUEST_CODE_CREATOR = 2;
private static final int REQUEST_CODE_RESOLUTION = 3;
private GoogleApiClient mGoogleApiClient;
private Bitmap mBitmapToSave;
/**
* Create a new file and save it to Drive.
*/
private void saveFileToDrive() {
// Start by creating a new contents, and setting a callback.
Log.i(TAG, "Creating new contents.");
final Bitmap image …Run Code Online (Sandbox Code Playgroud) 我刚开始在我的应用中使用AdMob,我对不同的条款(例如"请求","展示次数"等)以及它们在网络报告中的含义有点不确定.例如:

虽然我已经找到了一些关于这些术语的含义的信息,但完整的指南会更有用.
我有一个Activity,它本身就有三个Fragment.
在其中一个片段中,有一个RecyclerView带有自定义适配器,并且单击其中一个项目将转到另一个页面,这是相同的新实例Activity.但是,某种行为会导致我的应用程序出错.
在我的Activity中,单击其中一个项会显示同一个Activity的新实例,这很好.然后我按下后退按钮,我被带回第一个活动.但是再次单击其中一个项目(以启动相同Activity的新实例)会导致以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'java.lang.String android.content.Context.getPackageName()'
同样重要的是要考虑我在我的Activity中的一个片段中调用Activity的新实例(即三个项目的位置).所以,当我打电话给它时,我有类似的东西:
public class MyActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
ViewPager viewPager = (ViewPager) findViewById(R.id.detail_viewpager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
TabLayout tabLayout = (TabLayout) findViewById(R.id.detail_tabs);
tabLayout.setTabTextColors(
ContextCompat.getColor(this, R.color.text_white_secondary),
ContextCompat.getColor(this, R.color.text_white));
tabLayout.setSelectedTabIndicatorColor(ContextCompat.getColor(this, R.color.white));
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
}
...
public class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return 3;
}
@Override
public Fragment getItem(int position) {
switch …Run Code Online (Sandbox Code Playgroud) android nullpointerexception android-context android-fragments
我有一个ActionBarActivity其中有导航抽屉的片段。当按下导航抽屉中的某个项目时,它会启动相应的片段。在每个片段中,该onCreate()方法如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setTheme(R.style.AppTheme);
setHasOptionsMenu(true);
}
Run Code Online (Sandbox Code Playgroud)
然而,每个片段所应用的主题都不同。
我注意到该方法似乎没有更改我引用的 中声明的 或 状态栏setTheme()的颜色:ActionBarstyles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/brand_red_primary</item>
<item name="colorPrimaryDark">@color/brand_red_primaryDark</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
同样,我的活动中的不同片段有不同的样式colorPrimary和不同的属性。colorPrimaryDark
因此,该setTheme()方法不会更改状态ActionBar栏或状态栏的颜色,但它确实会更改一些内容,例如列表视图中回拉功能的颜色。
我是否遗漏了什么,或者我需要做什么来setTheme()更改ActionBar状态栏颜色?
我尝试了此处发布的解决方案,但它给出的结果与我之前尝试过的结果完全相同(使用setTheme())。
android android-theme android-fragments navigation-drawer android-styles
我已经开发了一段时间的Android应用程序,但是意识到我仍然不知道该gradle.properties文件的用途。
我已经阅读了Gradle文档,其中介绍了您可以添加用于指定Java主目录或内存设置的配置。还有其他用途吗?
在这种情况下,我的主要参考通常是Google I / O开源应用程序,然后查看其gradle.properties文件,我可以看到它的一种用途是存储依赖项版本变量,因此Android支持库依赖项的版本代码,例如,不需要每个都使用新版本的库进行更新,只需更新一个变量即可:
...
// Android support libraries.
compile "com.android.support:appcompat-v7:${android_support_lib_version}"
compile "com.android.support:cardview-v7:${android_support_lib_version}"
compile "com.android.support:design:${android_support_lib_version}"
compile "com.android.support:support-v13:${android_support_lib_version}"
compile "com.android.support:recyclerview-v7:${android_support_lib_version}"
compile "com.android.support:preference-v7:${android_support_lib_version}"
...
Run Code Online (Sandbox Code Playgroud)
相同的想法已用于Google Play服务。
但是,在我自己的一个Android项目中,我一直在做类似的事情-我将版本变量放在根build.gradle文件中,如下所示:
// Top-level build file where you can add configuration options
// common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.0.5-2'
repositories {
...
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
...
Run Code Online (Sandbox Code Playgroud)
然后,我一直在模块中使用它,build.gradle如下所示:
dependencies {
...
// Kotlin standard library
compile …Run Code Online (Sandbox Code Playgroud) 我已经开始从使用ActionBarActivity改为AppCompatActivity,但我也开始使用它Toolbar而不是标准ActionBar.
但是,在我的一个具有滑动选项卡类型布局的活动中,以下行似乎已被弃用:
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Run Code Online (Sandbox Code Playgroud)
虽然我已经在Stack Overflow上查看了关于此问题的其他一些答案,但是有没有内置的方法来改变它以支持使用Toolbar.如果是这样,你能解释一下我将如何改变它吗?如何onTabSelected更改已弃用的方法?
另外,我注意到Google Play音乐应用看起来像是标签下方的扩展工具栏/部分(请参阅此图片了解我所说的内容).我怎么能有这种类型的布局?
提前致谢.
android android-layout android-tabs android-5.0-lollipop android-toolbar
android ×9
admob ×1
ads ×1
android-tabs ×1
android-xml ×1
collections ×1
definition ×1
image ×1
java ×1
kotlin ×1
libpng ×1
list ×1
scaletype ×1
slice ×1
terminology ×1
xml ×1