小编Key*_*ari的帖子

自定义onDraw()方法未调用

<LinearLayout android:id="@+id/svLL" android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <ScrollView android:id="@+id/sv"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <!--
            <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/scrollbar_2_text" />
        -->
        <com.mypackage.MyDrawableView
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </ScrollView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
public class MyDrawableView extends View {

    Context thisContext;

    public MyDrawableView(Context context, AttributeSet attr) {
        super(context);
        thisContext = context;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        final Paint paint = new Paint();
        paint.setColor(Color.BLUE);
        paint.setTextSize(12);
        canvas.drawText("Blah blah", 0, 100, paint);
    }
}
Run Code Online (Sandbox Code Playgroud)
public class MyActivity extends Activity {
    // Your member variable declaration here
    // Called when the …
Run Code Online (Sandbox Code Playgroud)

android drawing

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

Android应用程序上的DeadObjectException

有时候,我开始了Activity我的应用程序,或者在快速切换Fragment的A S ViewPager是在特定的Activity,我有DeadObjectException这样的:

W/ActivityManager(  669): android.os.DeadObjectException
W/ActivityManager(  669):   at android.os.BinderProxy.transact(Native Method)
W/ActivityManager(  669):   at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:660)
W/ActivityManager(  669):   at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:776)
W/ActivityManager(  669):   at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2501)
W/ActivityManager(  669):   at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2375)
W/ActivityManager(  669):   at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2040)
W/ActivityManager(  669):   at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9667)
W/ActivityManager(  669):   at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9560)
W/ActivityManager(  669):   at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10205)
W/ActivityManager(  669):   at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9756)
W/ActivityManager(  669):   at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86
Run Code Online (Sandbox Code Playgroud)

和应用程序崩溃.我也有一些像这样的不寻常的日志:

F/libc    (24088): Fatal signal 11 (SIGSEGV) at 0x00000020 (code=1), thread 24115 (Thread-1047)
I/DEBUG   (23974): *** *** *** *** *** …
Run Code Online (Sandbox Code Playgroud)

java android memory-management android-activity

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

View.setVisibility中的java.util.ConcurrentModificationException

我正在为观点实施"拖放".当拖动开始时,我将视图的可见性设置为INVISIBLE,然后,如果拖动被中断 - 返回到VISIBLE:

public boolean onTouch(View v, MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        // Skipped some code
        boolean dragStarted = v.startDrag(data, shadowBuilder, v, 0);

        if (dragStarted) {
            v.setVisibility(View.INVISIBLE)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和:

if (event.getAction() == DragEvent.ACTION_DRAG_ENDED) {
    View droppedView = (View) event.getLocalState();
    droppedView.setVisibility(View.VISIBLE);
}
Run Code Online (Sandbox Code Playgroud)

当调用"Drag ended"事件时,我会遇到异常:

E/AndroidRuntime(7118): FATAL EXCEPTION: main 
E/AndroidRuntime(7118): java.util.ConcurrentModificationException 
E/AndroidRuntime(7118):     at java.util.HashMap$HashIterator.nextEntry(HashMap.java:792)
E/AndroidRuntime(7118):     at java.util.HashMap$KeyIterator.next(HashMap.java:819) 
E/AndroidRuntime(7118):     at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1046)
E/AndroidRuntime(7118):     at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1048)
E/AndroidRuntime(7118):     at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1048)
E/AndroidRuntime(7118):     at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1048)
E/AndroidRuntime(7118):     at android.view.ViewRootImpl.handleDragEvent(ViewRootImpl.java:3471)
E/AndroidRuntime(7118): …
Run Code Online (Sandbox Code Playgroud)

android drag-and-drop view

19
推荐指数
1
解决办法
3858
查看次数

Android支持库大大增加了APK的大小

我正在AppCompatAndroid项目中使用支持库.AppCompat有大量的drawables和资源,我不在我的应用程序中使用.那些不必要的文件将我的900K应用程序增加到2M以上,这是我不喜欢的.
有没有办法在创建APK文件时排除这些文件?或者我应该在我的代码中混淆库而不是依赖?我在Android Studio中使用Gradle.

谢谢

编辑1我已经使用了proguard.但是proguard不知道我不想拥有drawable-xxxhdpi或者values-it例如.

编辑2我也使用Android Lint,它无法帮助我,因为我不直接访问lib的代码,并且android在构建APK文件时添加它们.

android android-appcompat apk android-support-library android-gradle-plugin

19
推荐指数
2
解决办法
6617
查看次数

禁用ScrollView操作

在我的应用程序中,我有一行用于增加窗口小部件的宽度(通过向右/向左拖动线),并且我ScrollView在相同的活动中启用了.我需要在用户触摸该行时禁用滚动视图操作,当用户释放时,应该启用它.本ScrollView应在可视状态,但滚动视图的作用应该被禁用.请帮我解决这个问题.我试过这些,但没有一个是有效的.

scroll.setEnabled(false); 
scroll.setFocusable(false); 
scroll.setHorizontalScrollBarEnabled(false); 
scroll.setVerticalScrollBarEnabled(false);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

scrollview android-widget

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

sqlite3_open_v2("/ data/data/com.android.packagename/databases/dump.sqlite",&handle,1,NULL)失败

我正在使用sqlite数据库....应用程序正在使用2.3及更高版本...当我试图在2.2中运行时...我得到了一个错误,如....

E/Database(2476):sqlite3_open_v2("/data/data/com.android.packagename/databases/dump.sqlite", &handle, 1, NULL) failed
Run Code Online (Sandbox Code Playgroud)

数据库有一些问题.

当我试图在2.2中运行我的应用程序时.我的logcat显示

E/Database(2476):sqlite3_open_v2("/data/data/com.android.canadaQbank/databases/dump.sqlite", &handle, 1, NULL) failed
D/asset(2476): Data exceeds UNCOMPRESS_DATA_MAX (4594688 vs 1048576)
D/AndroidRuntime(2476): Shutting down VM
W/dalvikvm(2476): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
D/dalvikvm(2476): GC_FOR_MALLOC freed 6256 objects / 356848 bytes in 165ms
E/AndroidRuntime(2476): FATAL EXCEPTION: main
E/AndroidRuntime(2476): java.lang.Error: Error copying database
E/AndroidRuntime(2476):     at com.android.canadaQbank.DBAdapter.createDataBase(DBAdapter.java:83)
E/AndroidRuntime(2476):     at com.android.canadaQbank.Select.getUsers(Select.java:110)
E/AndroidRuntime(2476):     at com.android.canadaQbank.Select.onCreate(Select.java:92)
E/AndroidRuntime(2476):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(2476):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
E/AndroidRuntime(2476):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(2476):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime(2476):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime(2476):     at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(2476):     at …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

抛出异常,忽略catch部分

我正面临着java.lang.NoSuchMethodError: android.nfc.NdefRecord.createUri这段代码的异常:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
   mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext());
   try {
        if (mNfcAdapter == null) {
        } else {
            NdefRecord uriRecord = NdefRecord.createUri(someUri);
            NdefMessage msg = new NdefMessage(new NdefRecord[] {uriRecord});
            mNfcAdapter.setNdefPushMessage(msg, this);
        }
    } catch (Exception e) {
        Log.e(getClass().getSimpleName(), "initNfcNdefMessage()", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,initNfcNdefMessage 不会在堆栈跟踪中打印.这怎么可能?

android exception nfc

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