小编por*_*der的帖子

在先前失败的类java.lang.Class <nt>上拒绝重新初始化:java.lang.NoClassDefFoundError

我在控制台中看到一个看起来像是错误的信息日志.它是从"艺术"打印出来的,通常与记忆有关,但我需要帮助理解它的含义.有问题的类是我的MapFragment类.MapFragment是我创建的一个自定义类,它扩展了SupportMapFragment,以便我可以覆盖触摸事件.此类是否导致此问题,我该如何解决?

这是我的MapFragment类

public class MapFragment extends SupportMapFragment {
    private TouchableWrapper mTouchView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View originalContentView = super.onCreateView(inflater, container, savedInstanceState);
        mTouchView = new TouchableWrapper(getActivity());
        mTouchView.addView(originalContentView);
        return mTouchView;
    }

    @Override
    public View getView() {
        return mTouchView;
    }

    /**
     * MapOnTouchListener callback
     *
     * @param listener
     */
    public void setMapTouchListener(TouchableWrapper.MapOnTouchListener listener) {
        mTouchView.setMapOnTouchListener(listener);
    }
Run Code Online (Sandbox Code Playgroud)

我收到的错误是,

Rejecting re-init on previously-failed class java.lang.Class<nt>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/chimera/Fragment;
     at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, java.lang.Object, dalvik.system.DexFile) (DexFile.java:-2)
     at java.lang.Class …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-fragments

59
推荐指数
2
解决办法
7万
查看次数

如何以编程方式设置默认应用启动器?

我正在创建一个可以通过谷歌下载的启动器(自助服务终端)应用程序.首次安装此应用程序时,用户可以选择哪个启动器(我的或库存)将是默认设置.如果用户没有将我的应用程序设置为默认启动器,我试图手动启动它.当对话框出现时,我希望用户强制选择ALWAYS而不是JUST ONCE,否则对话框将继续定期显示友好消息.这是我到目前为止所尝试的.

我创建了一个方法来检查我的应用程序是否是默认的

/**
 * method checks to see if app is currently set as default launcher
 * @return boolean true means currently set as default, otherwise false
 */ 
private boolean isMyAppLauncherDefault() {
    final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_HOME);

    List<IntentFilter> filters = new ArrayList<IntentFilter>();
    filters.add(filter);

    final String myPackageName = getPackageName();
    List<ComponentName> activities = new ArrayList<ComponentName>();
    final PackageManager packageManager = (PackageManager) getPackageManager();

    packageManager.getPreferredActivities(filters, activities, null);

    for (ComponentName activity : activities) {
        if (myPackageName.equals(activity.getPackageName())) {
            return true;
        }
    }
    return false; …
Run Code Online (Sandbox Code Playgroud)

android launcher android-intent

39
推荐指数
3
解决办法
4万
查看次数

如何在ViewPager上进行循环滚动?

我想将我的ViewPager设置为循环滚动.我希望第一页能够滚动到第2页和最后一页.我希望我的最后一页滚动到[最后一页-1]和第一页.我已经尝试了,虽然我不确定何时调用我创建的方法.在ViewPager中似乎没有一种方法可以处理这种事情,所以我创建了以下内容.

    public ViewPagerAdapter(final ViewPager pager, int... pageIDs) {
        super();
        int actualNoOfIDs = pageIDs.length;
        count = actualNoOfIDs + 2;
        Log.d(TAG, "actualNoOfIDs: " + actualNoOfIDs +
                "count: " + count);

        pageIDsArray = new int[count];
        for (int i = 0; i < actualNoOfIDs; i++) {
            pageIDsArray[ i + 1] = pageIDs[i];
        }
        pageIDsArray[0] = pageIDs[actualNoOfIDs - 1];
        pageIDsArray[count - 1] = pageIDs[0];

        Log.d(TAG, "actualNoOfIDs#2: " + actualNoOfIDs +
                "count#2: " + count);
        pager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                int pageCount …
Run Code Online (Sandbox Code Playgroud)

android scroll android-viewpager

29
推荐指数
2
解决办法
3万
查看次数

如何在notifyItemChanged(pos)之后阻止RecyclerView项目闪烁?

我目前有一个回收站视图,其数据每5秒更新一次.要更新列表中的数据,我正在使用

notifyItemChanged(position);
notifyItemRangeChanged(position, mList.size());
Run Code Online (Sandbox Code Playgroud)

每次我调用notifyItemChanged()时,我的recycler视图上的项都会正确更新,但是它会闪烁,因为这会导致再次调用onBindViewHolder.因此,每次都是新鲜的负载.如果可能的话,我怎样才能防止这种情况发生?

android android-recyclerview

25
推荐指数
6
解决办法
1万
查看次数

四个屏幕边的CustomDrawerLayout发出Fling手势和检测

我正在尝试创建和改进现有的SlidingDrawers项目,这些项目可以适用于屏幕的所有四个边{LEFT,RIGHT,TOP,BOTTOM}.有一些库,但它们都有局限性,复杂性和错误.其中一个比较常见的是umano的AndroidSlidingUpPanel,但是,我不喜欢这个库,因为你只需要包含两个子布局,并且还需要注意主要内容的具体安排.其他库类似,或更复杂,或有bug.

我接近完成我的SlidingDrawers版本,我专注于BOTTOM引力.我需要一些帮助.单击抽屉将打开并关闭它.您也可以用手指滑动抽屉.但是,如果你扔掉抽屉,整个视图将会移动到比它应该更低或更低的位置.

我该如何解决这个问题?据我所知,我的数学是正确的.我传给动画师的翻译价值应该是正确的.以下是我完成的工作.请查看此项目https://github.com/drxeno02/CustomDrawerLayout.git.先感谢您.

对于那些想要查看有问题的代码看起来的片段的人来说,这就是我目前正在做的手势.

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            mActivePointerId = MotionEventCompat.getPointerId(event, 0);
            switch (mStickTo) {
                case GRAVITY_BOTTOM:
                case GRAVITY_TOP:
                    mInitialCoordinate = event.getY();
                    break;
                case GRAVITY_LEFT:
                case GRAVITY_RIGHT:
                    mInitialCoordinate = event.getX();
                    break;
            }
            break;

        case MotionEvent.ACTION_MOVE:

            float coordinate = 0;
            switch (mStickTo) {
                case GRAVITY_BOTTOM:
                case GRAVITY_TOP:
                    coordinate = event.getY();

                    break;
                case GRAVITY_LEFT:
                case GRAVITY_RIGHT:
                    coordinate = event.getX();
                    break;
            }

            final int diff = (int) Math.abs(coordinate - mInitialCoordinate);

            // confirm that difference …
Run Code Online (Sandbox Code Playgroud)

android gesture slidingdrawer drawerlayout

24
推荐指数
1
解决办法
304
查看次数

在 Kotlin 中将字符串编码为 UTF-8

通常在处理 json 和响应时,您希望在 java 中将 String 编码为 UTF-8。

String response = new String(response.data, UTF); // java code
Run Code Online (Sandbox Code Playgroud)

对于 Kotlin,这是如何做到的?我转换了我的 Java 类,结果是

String response = String(response.data, UTF) // kotlin code
Run Code Online (Sandbox Code Playgroud)

但这会导致错误,因为我相信 Kotlin String() 方法与我在 Java 中所做的不同。它像使用 toString() 一样简单吗?

String response = response.data.toString() // kotlin code
Run Code Online (Sandbox Code Playgroud)

系统如何知道使用 UTF-8,或者这只是默认值?这只是假设,但是如果我想对 String 对象做一些事情并因此使用 UTF-16 呢?如何更改编码?

java encoding character-encoding kotlin

12
推荐指数
3
解决办法
2万
查看次数

如何使用包含视图的视图绑定?

视图绑定随 v3.6 一起发布。

文档:https : //developer.android.com/topic/libraries/view-binding

我的问题是,有谁知道如何使用包含布局的视图绑定?

包含另一个布局的给定布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include
        android:id="@+id/my_header"
        layout="@layout/item_header"
        android:layout_width="match_parent"
        android:layout_height="100dp" />

</LinearLayout>

Run Code Online (Sandbox Code Playgroud)

我正在尝试引用 item_header 布局内的项目。

binder.my_header (<-- this just returns back the view)
binder.root (<-- this just returns back the root view)
Run Code Online (Sandbox Code Playgroud)

即使我向 item_header 的根添加一个 id,例如 id="@+id/parent_id" 并尝试引用它,我也会收到空指针异常

binder.parentId (<-- I have access to views inside of the item_header, however, I receive exceptions. Says that "parentId" cannot be found)
Run Code Online (Sandbox Code Playgroud)

如何参考布局,item_header

binding android

11
推荐指数
2
解决办法
4750
查看次数

没有图片的自定义箭头:Android

我遵循了这个教程:http://looksok.wordpress.com/2013/08/24/android-triangle-arrow-defined-as-an-xml-shape/

本教程用于创建自定义箭头作为递增/递减按钮,而无需使用图像.箭头的形状很好但是向上箭头的位置使其底部位于按钮视图的底部,而向下箭头的底部位于按钮视图的顶部.换句话说,箭头没有正确对齐.

在此输入图像描述

我想知道,按钮视图是否有某种y轴偏移可以用来更好地定位箭头?我的代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/arrow_up"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:background="@drawable/custom_arrow" />

    <Button
        android:id="@+id/arrow_down"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:rotation="180"
        android:layout_toRightOf="@id/arrow_up"
        android:background="@drawable/custom_arrow" /> 
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

custon_arrow.xml是:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <!-- android:pivotX="-40%" -->
        <rotate 
            android:fromDegrees="45"
            android:toDegrees="45"
            android:pivotX="-20%"
            android:pivotY="88%" >
            <shape
                android:shape="rectangle" >
                <stroke android:color="@color/transparent" android:width="5dp"/> 
                <solid
                    android:color="@color/grey_shade" />
            </shape>
        </rotate>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

xml android android-custom-view

9
推荐指数
2
解决办法
2万
查看次数

适用于Android的Google Map Gradient Polylines?

关于如何进行渐变多段线的问题已被多次询问,但是,我想知道这是否内置于Android中.在接下来的帖子中,这个问题已经蓄势待发,有人回答说截至2015年5月,Android仍然没有渐变折线:

android中的彩色折线映射api v2

我已经梳理了所有可以找到的文档,并且没有看到有关渐变折线函数的任何信息.我错过了吗?因为iOS已经有三年的这种能力了.

https://maps-apis.googleblog.com/2014/02/gradient-polylines-and-structured.html

我无法想象Google会优先考虑iOS而不是Android.或者是他们?这是我检查过的文档:

https://developers.google.com/maps/documentation/android-api/polygon-tutorial

https://developers.google.com/android/reference/com/google/android/gms/maps/model/PolylineOptions

https://developers.google.com/maps/documentation/android-api/groundoverlay

如果有人能指出我正确的方向,那会有所帮助.或者至少确认在梯度折线方面已经忽略了Android.

android google-maps google-maps-android-api-2

9
推荐指数
1
解决办法
1690
查看次数

拍摄带照相机意图的照片并在imageView或textView中显示?

我有一个关于如何使用相机意图(或相机API)拍摄图像的问题,然后将图像带入imageView,以便在我的应用程序中显示.这就是我到目前为止所拥有的.

我设置了一个按钮

Button btnPicture = (Button) findViewById(R.id.btn_picture);
    btnPicture.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)

我设置了一个Camera方法

private void Camera() {
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, TAKE_PICTURE_CODE);
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)

这就是我迷失的地方.我正在尝试处理我拍摄的图像.

    private void processImage(Intent intent) {
    setContentView(R.layout.imagelayout);
    ImageView imageView = (ImageView)findViewById(R.id.image_view);
    cameraBitmap = (Bitmap)intent.getExtras().get("data");
    imageView.setImageBitmap(cameraBitmap);
}
Run Code Online (Sandbox Code Playgroud)

我的目的是显示你在image_view中拍摄的图像.我没有收到错误,没有任何反应.当我拍照时,我被要求拍摄另一张照片,或者在我使用设备后退按钮后,应用程序强制关闭.似乎我完全退出了我的应用程序,返回是一个大问题.有什么建议?我错过了什么?

是的,这是我的onActivityResult

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if(TAKE_PICTURE_CODE == requestCode) {

        Bundle extras = data.getExtras();
        if (extras.containsKey("data")) {
            Bitmap bmp = (Bitmap) extras.get("data");
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
            byte[] …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-imageview

8
推荐指数
1
解决办法
2万
查看次数