小编som*_*ser的帖子

Android应用程序在Real Device上崩溃如果手动安装了apk

我的应用程序在Emulators中运行良好,甚至在android studio安装的实际设备中用于调试目的,但如果使用apk文件手动安装它会崩溃.

我准备粘贴任何其他代码,如活动,如果需要.

这是logcat:

04-14 12:20:44.392 6220-6220/? I/art: Late-enabling -Xcheck:jni
04-14 12:20:44.465 6220-6220/test.planner W/System: ClassLoader referenced unknown path: /data/app/test.planner-1/lib/arm
04-14 12:20:44.467 6220-6220/test.planner I/InstantRun: starting instant run server: is main process
04-14 12:20:44.470 6220-6220/test.planner D/AndroidRuntime: Shutting down VM
04-14 12:20:44.471 6220-6220/test.planner E/AndroidRuntime: FATAL EXCEPTION: main
Process: test.planner, PID: 6220
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{test.planner/test.planner.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "test.planner.MainActivity" on path: DexPathList[[zip file "/data/app/test.planner-1/base.apk"],nativeLibraryDirectories=[/data/app/test.planner-1/lib/arm, /vendor/lib, /system/lib]]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417) …
Run Code Online (Sandbox Code Playgroud)

java crash android

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

strokeColor 和 strokeWidth 在 androidx.cardview.widget.CardView android 中不起作用

试图在cardView( androidx.cardview.widget.CardView)周围做一些边框

这是代码:

<androidx.cardview.widget.CardView

    android:id="@+id/cardView"
    android:layout_width="273dp"
    android:layout_height="118dp"
    android:layout_marginStart="9dp"
    android:layout_marginTop="10dp"
    android:layout_marginEnd="9dp"
    android:clickable="true"
    android:focusable="true"
    android:foreground="?android:attr/selectableItemBackground"
    android:orientation="vertical"
    app:cardCornerRadius="8dp"

    android:background="@drawable/fix_border" 
    app:strokeColor="#dedede"
    app:strokeWidth="3dp">

</androidx.cardview.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

结果:

边框不显示

还尝试使用自定义形状作为背景 ( fix_border.xml),也不起作用。

fix_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="2dp"
        android:color="#dedede" />
    <!--    <solid android:color="#ffffff" />-->
    <padding
        android:bottom="7dp"
        android:left="7dp"
        android:right="7dp"
        android:top="7dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

android material-design android-cardview material-components-android androidx

5
推荐指数
1
解决办法
3156
查看次数

C - 如何释放动态分配的内存?

看看这段代码,它是链表的一部分.

int main()

{
    List* head1 = NULL;

    insertFront(&head1, 1);
    insertFront(&head1, 2);

    print(head1);

    free(head1);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

另一个功能是:

void insertFront(List** head, int value)

{
    List* node = (List*)malloc(sizeof(List));
    node->data = value;
    node->next = NULL;

    node->next = *head;
    *head = node;

   //free(node); essentially I am not freeing node
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 我的代码是否会导致内存泄漏问题?

  2. 我是否需要为节点(在函数内部)释放已分配的内存(动态)?

  3. 如果我释放head1,那么为节点分配的内存是否也会被释放?如果是,那怎么样?

c memory-leaks dynamic-memory-allocation

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

C - 指针在释放后不为空

释放后指针的值是否为NULL?

int* p = malloc(sizeof(*p));

free(p);

if(p==NULL)
    printf("Null\n");
else
    printf("Not null\n");
Run Code Online (Sandbox Code Playgroud)

输出:

 Not null
Run Code Online (Sandbox Code Playgroud)

好吧,我假设没有;

无论如何,我今天早些时候提出了一个问题:

在这里查看: C - 如何释放动态分配的内存?

List* head1 = NULL;

insertFront(&head1, 1);
insertFront(&head1, 2);

print(head1);

while (head1)
{

    List *temp = head1;
    head1 = head1->next;
    free(temp);
}

if(head1 == NULL)
    printf("Null\n");
else
    printf("Not null\n");
Run Code Online (Sandbox Code Playgroud)

这种情况下的输出:

Null
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在释放head1(节点也)后,head1变为null,不是吗?

最后,我错过了一些概念吗?

head1为null,但p不是.

我的问题是:

为什么head1和p之间的值不同?

c free pointers dynamic-memory-allocation

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