Android Studio: 3.5.3
(app/build.gradle)
defaultConfig {
applicationId "com.example.androiduberclone"
minSdkVersion 25
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
я изучаю создание приложения, например uber.
Youtube: https://www.youtube.com/watch?v=DvFPQBHfGzs&t=1145s
, но этот mov ie загружен в 2017 году.
19:05 позиция об этом mov ie. это настраиваемая настройка шрифта.
step1: загрузка и сохранение шрифта в порядке.
step2: зависимости «Каллиграфия» в порядке.
(app/build.gradle)
dependencies {
...
// Add library
implementation 'com.google.firebase:firebase-auth:19.2.0'
implementation 'com.google.firebase:firebase-database:19.2.1'
implementation 'com.android.support:design:28.0.0'
implementation 'com.rengwuxian.materialedittext:library:2.1.4'
implementation 'uk.co.chrisjenx:calligraphy:2.3.0'
}
step3: кодирование в MainActivity
package com.example.androiduberclone
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import uk.co.chrisjenx.calligraphy.CalligraphyConfig
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper
class MainActivity : AppCompatActivity() {
+ override fun attachBaseContext(newBase: Context?) {
+ super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase))
+ }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ // Before setContentView
+ CalligraphyConfig.initDefault(CalligraphyConfig.Builder()
+ .setDefaultFontPath("fonts/Arkhip_font.ttf")
+ .setFontAttrId(R.attr.fontPath)
+ .build())
setContentView(R.layout.activity_main)
}
}
без сообщения об ошибке:
2020/02/24
16:27 Task running: [:app:assembleDebug] in project C:\Users\yoshi\AndroidStudioProjects\AndroidUberClone
16:27 Gradle build finished 9s14ms
16:27 Install successfully finished in 735 ms.
, но приложение остановлено:
step4: если attachBaseContext выключен.
package com.example.androiduberclone
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import uk.co.chrisjenx.calligraphy.CalligraphyConfig
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper
class MainActivity : AppCompatActivity() {
// override fun attachBaseContext(newBase: Context?) {
// super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase))
// }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Before setContentView
CalligraphyConfig.initDefault(CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/Arkhip_font.ttf")
.setFontAttrId(R.attr.fontPath)
.build())
setContentView(R.layout.activity_main)
}
}
все в порядке:)
зачем заморозить это.
Logcat:
2020-02-24 17:35:52.835 9774-9774/? I/ndroiduberclon: Not late-enabling -Xcheck:jni (already on)
2020-02-24 17:35:52.851 9774-9774/? E/ndroiduberclon: Unknown bits set in runtime_flags: 0x8000
2020-02-24 17:35:52.851 9774-9774/? W/ndroiduberclon: Unexpected CPU variant for X86 using defaults: x86
2020-02-24 17:35:52.993 9774-9774/com.example.androiduberclone V/FA: Registered activity lifecycle callback
2020-02-24 17:35:53.019 9774-9774/com.example.androiduberclone I/FirebaseInitProvider: FirebaseApp initialization successful
2020-02-24 17:35:53.022 9774-9813/com.example.androiduberclone W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-02-24 17:35:53.048 9774-9821/com.example.androiduberclone W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-02-24 17:35:53.057 9774-9774/com.example.androiduberclone V/FA: onActivityCreated
2020-02-24 17:35:53.066 9774-9774/com.example.androiduberclone W/ndroiduberclon: Accessing hidden field Landroid/view/LayoutInflater;->mConstructorArgs:[Ljava/lang/Object; (greylist-max-p, reflection, denied)
2020-02-24 17:35:53.067 9774-9774/com.example.androiduberclone D/AndroidRuntime: Shutting down VM
--------- beginning of crash
2020-02-24 17:35:53.069 9774-9774/com.example.androiduberclone E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.androiduberclone, PID: 9774
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androiduberclone/com.example.androiduberclone.MainActivity}: android.view.InflateException: Binary XML file line #17 in com.example.androiduberclone:layout/abc_screen_simple: Binary XML file line #17 in com.example.androiduberclone:layout/abc_screen_simple: Error inflating class androidx.appcompat.widget.FitWindowsLinearLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: android.view.InflateException: Binary XML file line #17 in com.example.androiduberclone:layout/abc_screen_simple: Binary XML file line #17 in com.example.androiduberclone:layout/abc_screen_simple: Error inflating class androidx.appcompat.widget.FitWindowsLinearLayout
Caused by: android.view.InflateException: Binary XML file line #17 in com.example.androiduberclone:layout/abc_screen_simple: Error inflating class androidx.appcompat.widget.FitWindowsLinearLayout
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
at uk.co.chrisjenx.calligraphy.ReflectionUtils.getValue(ReflectionUtils.java:29)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:203)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:239)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:773)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:659)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:552)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.example.androiduberclone.MainActivity.onCreate(MainActivity.kt:24)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
2020-02-24 17:35:53.070 9774-9774/com.example.androiduberclone E/AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
2020-02-24 17:35:53.075 9774-9821/com.example.androiduberclone I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
2020-02-24 17:35:53.233 9774-9812/com.example.androiduberclone V/FA: App measurement collection enabled
2020-02-24 17:35:53.235 9774-9812/com.example.androiduberclone V/FA: App measurement enabled for app package, google app id: com.example.androiduberclone, 1:208567245759:android:b3ec5d12b23ec721f25f0a
2020-02-24 17:35:53.252 9774-9812/com.example.androiduberclone I/FA: App measurement initialized, version: 21028
2020-02-24 17:35:53.252 9774-9812/com.example.androiduberclone I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
2020-02-24 17:35:53.252 9774-9812/com.example.androiduberclone I/FA: To enable faster debug mode event logging run:
adb shell setprop debug.firebase.analytics.app com.example.androiduberclone
2020-02-24 17:35:53.252 9774-9812/com.example.androiduberclone D/FA: Debug-level message logging enabled
2020-02-24 17:35:53.283 9774-9826/com.example.androiduberclone D/libEGL: Emulator has host GPU support, qemu.gles is set to 1.
2020-02-24 17:35:53.284 9774-9826/com.example.androiduberclone W/libc: Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied)
2020-02-24 17:35:53.280 9774-9774/com.example.androiduberclone W/RenderThread: type=1400 audit(0.0:29): avc: denied { write } for name="property_service" dev="tmpfs" ino=7421 scontext=u:r:untrusted_app:s0:c133,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0 app=com.example.androiduberclone
2020-02-24 17:35:53.289 9774-9826/com.example.androiduberclone D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so
2020-02-24 17:35:53.290 9774-9826/com.example.androiduberclone D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so
2020-02-24 17:35:53.291 9774-9826/com.example.androiduberclone D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so
2020-02-24 17:35:53.448 9774-9812/com.example.androiduberclone V/FA: Connecting to remote service
2020-02-24 17:35:53.530 9774-9812/com.example.androiduberclone V/FA: Connection attempt already in progress
2020-02-24 17:35:57.992 9774-9804/com.example.androiduberclone I/ndroiduberclon: Waiting for a blocking GC ProfileSaver