Самоуверенный вопрос. Чтобы увидеть, не является ли проблема, я проверил, что классы существуют с помощью dexdump (вывод ниже). < /P>
logcat
2-25 19:27:45.073 4126 4126 D test.app: main.c:53 _loadclass() (*env)->FindClass(&(*env), "android/app/NativeActivity") == 0x75
02-25 19:27:45.073 4126 4126 D test.app: main.c:54 _loadclass() (*env)->FindClass(&(*env), "test/app/MainActivity") == 0x0
02-25 19:27:45.073 4126 4126 F test.app: thread.cc:2165] No pending exception expected: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
< /code>
AndroidManifest.xml
< /code>
MainActivity.java
package test.app;
import android.os.Bundle;
import android.app.NativeActivity;
public class MainActivity extends NativeActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
< /code>
HelloWorld.java
package test.app;
public class HelloWorld {
public void main(String[] args) {
}
}
< /code>
main.c
JNIEXPORT void ANativeActivity_onCreate(ANativeActivity *act, void *ss,
size_t sssz) {
...
PRINTPTR(ENV->FindClass(&ENV, "android/app/NativeActivity"));
PRINTPTR(ENV->FindClass(&ENV, "test/app/MainActivity"));
PRINTPTR(ENV->FindClass(&ENV, "test/app/HelloWorld"));
...
}
< /code>
dexdump classes.dex
Processing 'classes.dex'...
Opened 'classes.dex', DEX version '035'
Class #0 -
Class descriptor : 'Ltest/app/HelloWorld;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Ltest/app/HelloWorld;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=3
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/HelloWorld;
Virtual methods -
#0 : (in Ltest/app/HelloWorld;)
name : 'main'
type : '([Ljava/lang/String;)V'
access : 0x0001 (PUBLIC)
code -
registers : 2
ins : 2
outs : 0
insns size : 1 16-bit code units
catches : (none)
positions :
locals :
source_file_idx : 1 (HelloWorld.java)
Class #1 -
Class descriptor : 'Ltest/app/MainActivity;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Landroid/app/NativeActivity;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Ltest/app/MainActivity;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=6
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/MainActivity;
Virtual methods -
#0 : (in Ltest/app/MainActivity;)
name : 'onCreate'
type : '(Landroid/os/Bundle;)V'
access : 0x0004 (PROTECTED)
code -
registers : 2
ins : 2
outs : 2
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=9
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/MainActivity;
0x0000 - 0x0004 reg=1 (null) Landroid/os/Bundle;
source_file_idx : 7 (MainActivity.java)
Подробнее здесь: https://stackoverflow.com/questions/794 ... -world-app
Получение java.lang.noclassdeffounderror в очень простом приложении Hello World ⇐ Android
Форум для тех, кто программирует под Android
1740492427
Anonymous
Самоуверенный вопрос. Чтобы увидеть, не является ли проблема, я проверил, что классы существуют с помощью dexdump (вывод ниже). < /P>
logcat
2-25 19:27:45.073 4126 4126 D test.app: main.c:53 _loadclass() (*env)->FindClass(&(*env), "android/app/NativeActivity") == 0x75
02-25 19:27:45.073 4126 4126 D test.app: main.c:54 _loadclass() (*env)->FindClass(&(*env), "test/app/MainActivity") == 0x0
02-25 19:27:45.073 4126 4126 F test.app: thread.cc:2165] No pending exception expected: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
< /code>
AndroidManifest.xml
< /code>
MainActivity.java
package test.app;
import android.os.Bundle;
import android.app.NativeActivity;
public class MainActivity extends NativeActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
< /code>
HelloWorld.java
package test.app;
public class HelloWorld {
public void main(String[] args) {
}
}
< /code>
main.c
JNIEXPORT void ANativeActivity_onCreate(ANativeActivity *act, void *ss,
size_t sssz) {
...
PRINTPTR(ENV->FindClass(&ENV, "android/app/NativeActivity"));
PRINTPTR(ENV->FindClass(&ENV, "test/app/MainActivity"));
PRINTPTR(ENV->FindClass(&ENV, "test/app/HelloWorld"));
...
}
< /code>
dexdump classes.dex
Processing 'classes.dex'...
Opened 'classes.dex', DEX version '035'
Class #0 -
Class descriptor : 'Ltest/app/HelloWorld;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Ltest/app/HelloWorld;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=3
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/HelloWorld;
Virtual methods -
#0 : (in Ltest/app/HelloWorld;)
name : 'main'
type : '([Ljava/lang/String;)V'
access : 0x0001 (PUBLIC)
code -
registers : 2
ins : 2
outs : 0
insns size : 1 16-bit code units
catches : (none)
positions :
locals :
source_file_idx : 1 (HelloWorld.java)
Class #1 -
Class descriptor : 'Ltest/app/MainActivity;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Landroid/app/NativeActivity;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Ltest/app/MainActivity;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=6
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/MainActivity;
Virtual methods -
#0 : (in Ltest/app/MainActivity;)
name : 'onCreate'
type : '(Landroid/os/Bundle;)V'
access : 0x0004 (PROTECTED)
code -
registers : 2
ins : 2
outs : 2
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=9
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/MainActivity;
0x0000 - 0x0004 reg=1 (null) Landroid/os/Bundle;
source_file_idx : 7 (MainActivity.java)
Подробнее здесь: [url]https://stackoverflow.com/questions/79466829/getting-java-lang-noclassdeffounderror-in-a-very-simple-hello-world-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия