คำถามติดแท็ก android

Android เป็นระบบปฏิบัติการมือถือของ Google ใช้สำหรับการเขียนโปรแกรมหรือพัฒนาอุปกรณ์ดิจิตอล (สมาร์ทโฟน, แท็บเล็ต, รถยนต์, ทีวี, เครื่องแต่งกาย, แก้ว, IoT) สำหรับหัวข้อที่เกี่ยวข้องกับ Android ให้ใช้แท็กเฉพาะสำหรับ Android เช่น android-intent, android-activity, android-adapter, ฯลฯ สำหรับคำถามนอกเหนือจากการพัฒนาหรือการเขียนโปรแกรม แต่เกี่ยวข้องกับกรอบของ Android ให้ใช้ลิงค์นี้: https: // android.stackexchange.com

3
ViewBinding - วิธีการผูกสำหรับเค้าโครงรวม?
ในขณะที่ทำงานกับ ViewBinding ฉันเจอกรณีที่มีเอกสารไม่มาก ครั้งแรก: วิธีการเชื่อมโยงสำหรับส่วนเค้าโครงมุมมองทั่วไปที่รวมการโยงหลักดูเฉพาะรายการในเค้าโครงหลัก ที่สอง: วิธีการเชื่อมโยงสำหรับส่วนเลย์เอาต์ชนิดผสานรวมอีกครั้งการโยงหลักดูเฉพาะรายการในโครงร่างหลัก

10
ไม่มีการสร้างคลาสการเชื่อมโยงข้อมูลในสตูดิโอ 3.6 ล่าสุด
วันนี้ฉันได้อัปเดต android studio 3.5.3 เป็น 3.6 ตอนนี้ฉันไม่สามารถสร้างคลาสการเชื่อมโยงข้อมูลใด ๆ Android studio มันสร้างไฟล์ผูกพันข้อมูลด้วยตนเอง มีใครประสบปัญหาเช่นนี้หรือไม่? wrapper Gradle คุณสมบัติ: distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip ไฟล์ gradle ระดับโครงการ: dependencies { classpath 'com.android.tools.build:gradle:3.5.3' } ไฟล์ gradle ระดับแอป: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' apply plugin: 'androidx.navigation.safeargs' android { dataBinding { enabled = true } …

3
Android RecognitionListener: onResults ถูกเรียกสองครั้ง
ฉันมีโครงการที่ใช้ RecognitionListener เขียนใน Kotlin ฟังก์ชั่นพูดเป็นข้อความประสบความสำเร็จและไม่เคยมีปัญหาใด ๆ ตั้งแต่สัปดาห์ที่แล้วฟังก์ชั่น onResult เริ่มถูกเรียกสองครั้ง ไม่มีการเปลี่ยนแปลงใด ๆ ในโครงการ ฉันทดสอบเวอร์ชันเก่าของโครงการ (จากเดือนก่อน) และสิ่งเหล่านั้นมีปัญหาเดียวกัน มีสามกรณีที่แตกต่างกัน: ข้อความขนาดเล็ก (1 ถึง 8 คำ) และ SpeechRecognizer จะหยุดโดยอัตโนมัติ -> onResult () เรียกว่าสองครั้ง; ข้อความขนาดใหญ่ (9 คำขึ้นไป) และ SpeechRecognizer ถูกหยุดโดยอัตโนมัติ -> พฤติกรรมปกติ (onResult () เรียกว่าหนึ่งครั้ง); ขนาดข้อความใด ๆ และฟังก์ชั่น SpeechRecognizer stopListening () เรียกว่าด้วยตนเอง (จากรหัส) -> พฤติกรรมปกติ นี่คือรหัสคลาสของคำพูดเป็นข้อความแบบ …

1
เสียงที่บันทึกโดยใช้ MediaRecorder.AudioSource.VOICE_COMMUNICATION นั้นว่างเปล่าในอุปกรณ์บางอย่างที่ใช้ Android 10
ฉันกำลังบันทึกเสียงสำหรับข้อความเสียงในแอปโดยใช้รหัสต่อไปนี้ MediaRecorder audioRecorder = new MediaRecorder(); audioRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION); audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC); audioRecorder.setOutputFile(audioRecordingFile); audioRecorder.prepare(); audioRecorder.start(); การใช้MediaRecorder.AudioSource.VOICE_COMMUNICATIONแทนที่จะใช้MediaRecorder.AudioSource.MIC)มีประโยชน์อย่างมากในการบันทึกไฟล์เสียงที่ผ่านการประมวลผลล่วงหน้า แต่เมื่อเร็ว ๆ นี้ฉันพบปัญหาบางอย่างที่ไฟล์ที่บันทึกว่างเปล่ากำลังรายงานบนอุปกรณ์บางอย่างที่เพิ่งได้รับการอัปเดตเป็น Android 10 ควรทราบว่าอุปกรณ์ Android 10 ทั้งหมดมีปัญหาเหล่านี้เพียงเล็กน้อยเช่น Nokia 6.1 และ Mi A2 ไม่มีข้อผิดพลาดหรือข้อยกเว้น แต่เพียงไฟล์เสียงที่ว่างเปล่า หากฉันใช้MediaRecorder.AudioSource.MIC)แสดงว่าไม่เห็นปัญหา ฉันพบข้อมูลต่อไปนี้ที่เกี่ยวข้องกับ Android 10 และ VOICE_COMMUNICATION การเปิดตัว Android 10 มีข้อกำหนดต่อไปนี้สำหรับการจับภาพด้วย VOICE_COMMUNICATION จากนี้ฉันจะตรวจสอบความพร้อมใช้งานของ AcousticEchoCanceler, AutomaticGainControl และ NoiseSuppressor โดยใช้รหัสต่อไปนี้ AcousticEchoCanceler.isAvailable() AutomaticGainControl.isAvailable() NoiseSuppressor.isAvailable() และพบผลลัพธ์เดียวกันกับ …

3
RemoteServiceExceptions จำนวนมากใน MediaNotificationService ของนักส่งของ Google
ใน ~ 24 ชั่วโมงที่ผ่านมาเราได้เห็นปัญหาสองสามพันครั้งใน Google MediaNotificationService: Fatal Exception: android.app.RemoteServiceException Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{f9a4deb u0 <our package name>/com.google.android.gms.cast.framework.media.MediaNotificationService} android.app.ActivityThread$H.handleMessage (ActivityThread.java:1855) android.os.Handler.dispatchMessage (Handler.java:106) android.os.Looper.loop (Looper.java:214) android.app.ActivityThread.main (ActivityThread.java:6986) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1445) ฉันพบปัญหาที่คล้ายกันเมื่อสร้างบริการส่วนหน้าของตัวเอง แต่เนื่องจากอยู่ภายในห้องสมุดนักแสดงเราไม่สามารถควบคุมมันได้ ตัวรับสัญญาณ Chromecast นั้นจัดการโดยบุคคลที่สาม เรากำลังใช้: api "com.google.android.gms:play-services-cast:17.0.0" api "com.google.android.gms:play-services-cast-framework:17.0.0" เบาะแสที่เป็นไปได้: มันเกิดขึ้นกับ OnePlus, Huawei, Samsung, Google …

2
วิธีใช้ Dagger 2 เพื่อ Inject ViewModel ของ Fragments ที่เหมือนกันภายใน ViewPager
ฉันกำลังพยายามเพิ่ม Dagger 2 ในโครงการของฉัน ฉันสามารถฉีด ViewModels (ส่วนประกอบ AndroidX Architecture) สำหรับชิ้นส่วนของฉัน ฉันมีViewPager ซึ่งมี 2 อินสแตนซ์ของแฟรกเมนต์เดียวกัน (เฉพาะการเปลี่ยนแปลงเล็กน้อยสำหรับแต่ละแท็บ) และในแต่ละแท็บฉันกำลังเฝ้าดูLiveDataเพื่อรับการอัปเดตเกี่ยวกับการเปลี่ยนแปลงข้อมูล (จาก API) ปัญหาคือเมื่อการตอบสนอง api มาและอัปเดตLiveDataข้อมูลเดียวกันในส่วนที่มองเห็นได้ในปัจจุบันจะถูกส่งไปยังผู้สังเกตการณ์ในแท็บทั้งหมด (ฉันคิดว่านี่อาจเป็นเพราะขอบเขตของViewModel) นี่คือวิธีที่ฉันสังเกตข้อมูลของฉัน: override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) activityViewModel.expenseList.observe(this, Observer { swipeToRefreshLayout.isRefreshing = false viewAdapter.setData(it) }) .... } ฉันใช้คลาสนี้ในการจัดหาViewModels: class ViewModelProviderFactory @Inject constructor(creators: MutableMap<Class<out ViewModel?>?, Provider<ViewModel?>?>?) : ViewModelProvider.Factory { …

3
การคงตำแหน่งการเลื่อนจะใช้งานได้เฉพาะเมื่อไม่ได้อยู่ใกล้กับด้านล่างของ div
ฉันกำลังพยายามเลียนแบบแอพแชทมือถืออื่น ๆ ซึ่งเมื่อคุณเลือกsend-messageกล่องข้อความและมันเปิดแป้นพิมพ์เสมือนจริงข้อความล่างสุดยังคงอยู่ในมุมมอง ดูเหมือนจะไม่มีทางทำสิ่งนี้กับ CSS อย่างน่าอัศจรรย์ดังนั้น JavaScript resize(วิธีเดียวที่จะค้นหาว่าเมื่อใดที่แป้นพิมพ์ถูกเปิดและปิดอย่างเห็นได้ชัด) เหตุการณ์และการเลื่อนด้วยตนเองเพื่อช่วยเหลือ มีคนให้โซลูชันนี้และฉันพบวิธีแก้ปัญหานี้ซึ่งทั้งคู่ดูเหมือนจะใช้งานได้ ยกเว้นในกรณีเดียว สำหรับบางเหตุผลถ้าคุณอยู่ในMOBILE_KEYBOARD_HEIGHT(250 พิกเซลในกรณีของฉัน) พิกเซลด้านล่างของข้อความ div เมื่อคุณปิดแป้นพิมพ์มือถืออะไรแปลก ๆ เกิดขึ้น ด้วยวิธีการแก้ปัญหาเดิมมันเลื่อนไปที่ด้านล่าง และด้วยวิธีแก้ปัญหาหลังมันจะเลื่อนMOBILE_KEYBOARD_HEIGHTพิกเซลขึ้นจากด้านล่างแทน หากคุณเลื่อนไปที่ความสูงนี้โซลูชันทั้งสองที่ให้ไว้ข้างต้นจะทำงานได้อย่างไม่มีที่ติ เฉพาะเมื่อคุณอยู่ใกล้ด้านล่างสุดที่พวกเขามีปัญหาเล็กน้อยนี้ ฉันคิดว่าบางทีมันเป็นเพียงโปรแกรมของฉันที่ทำให้เกิดสิ่งนี้ด้วยรหัสหลงทางแปลก ๆ แต่ไม่ฉันทำซ้ำซอและมีปัญหาตรงนี้ ฉันขอโทษที่ทำให้สิ่งนี้ยากต่อการแก้ไข แต่ถ้าคุณไปที่https://jsfiddle.net/t596hy8d/6/show (ส่วนต่อท้ายของการแสดงเป็นโหมดเต็มหน้าจอ) บนโทรศัพท์ของคุณคุณควรจะเห็น พฤติกรรมเดียวกัน หากคุณเลื่อนขึ้นมามากพอการเปิดและปิดแป้นพิมพ์จะรักษาตำแหน่งไว้ อย่างไรก็ตามหากคุณปิดแป้นพิมพ์ภายในMOBILE_KEYBOARD_HEIGHTพิกเซลที่ด้านล่างคุณจะพบว่ามันเลื่อนไปที่ด้านล่างแทน อะไรทำให้เกิดสิ่งนี้ การสร้างรหัสที่นี่: window.onload = function(e){ document.querySelector(".messages").scrollTop = 10000; bottomScroller(document.querySelector(".messages")); } function bottomScroller(scroller) { let scrollBottom = scroller.scrollHeight - …

3
Bundle แอพ Android จาก React Native: คุณอัปโหลด Bundle แอพ APK หรือ Android ที่มีข้อมูลการเซ็นชื่อไม่ถูกต้องหรือหายไปสำหรับไฟล์บางไฟล์
ฉันพยายามเผยแพร่แอพเป็นครั้งแรกที่ Google Play Store ฉันสมัครเข้าใช้ Google Play แล้ว ฉันรู้ว่าฉันลงนามใน Android App Bundle ด้วยปุ่มขวาตั้งแต่เมื่อฉันอัปโหลดโดยใช้คีย์อื่นคอนโซลจะบอกให้ฉันอัปโหลดโดยใช้คีย์อื่นด้วยรหัส SHA1 ที่ระบุ อย่างไรก็ตามเมื่อฉันอัปโหลดด้วยคีย์ที่ถูกต้องฉันได้รับข้อผิดพลาดนี้: คุณอัปโหลด APK หรือ Android App Bundle ด้วยข้อมูลการเซ็นชื่อที่ไม่ถูกต้องหรือขาดหายไปสำหรับไฟล์บางไฟล์ ฉันกำลังสร้างแอพโดยใช้ Android Studio เช่น: Build> สร้าง Bundle ที่ลงชื่อแล้ว / APK> Android App Bundle> การเลือกที่เก็บคีย์และป้อนรหัสผ่าน> ปล่อย> เสร็จสิ้น แอพนี้เป็นแอป React Native ที่สร้างขึ้นด้วย Expo / ExpoKit ที่แยกออกมา การอัปโหลดไปยัง Apple App …

2
E / eglCodecCommon: GoldfishAddressSpaceHostMemoryAllocator: ioctl_ping ล้มเหลวสำหรับ device_type = 5, ret = -1
ทุกครั้งที่ฉันทดสอบแอพของฉันบน AndroidStudio ฉันจะได้รับข้อความแสดงข้อผิดพลาดนี้ แอพของฉันทำงานได้ดี แต่ฉันสับสนเล็กน้อย / อยากรู้ว่าข้อผิดพลาดนี้หมายถึงอะไร แม้ว่าฉันGoldfishAddressSpaceHostMemoryAllocatorจะหาผลลัพธ์ที่ไม่เกี่ยวข้อง 4 รายการ (พวกเขาตั้งชื่อคลาส แต่ไม่พยายามแก้ไข) ข้อความแสดงข้อผิดพลาดนี้หมายถึงอะไร

2
Kotlin Flow กับ LiveData
ใน Google I / O ล่าสุด Jose Alcerreca และ Yigit Boyar บอกกับเราว่าเราไม่ควรใช้ LiveData เพื่อดึงข้อมูลอีกต่อไป ตอนนี้เราควรใช้ฟังก์ชั่นระงับสำหรับการดึงข้อมูลครั้งเดียวและใช้ Flow ของ Kotlin เพื่อสร้างกระแสข้อมูล ฉันยอมรับว่า coroutines นั้นยอดเยี่ยมสำหรับการดึงข้อมูลแบบครั้งเดียวหรือการดำเนินการ CRUD อื่น ๆ เช่นการแทรกเป็นต้น แต่ในกรณีที่ฉันต้องการสตรีมข้อมูลฉันไม่เข้าใจว่าข้อดีของโฟลว์คืออะไร สำหรับฉันแล้วดูเหมือนว่า LiveData ก็ทำเช่นเดียวกัน ตัวอย่างที่มี Flow: ViewModel val items = repository.fetchItems().asLiveData() กรุ fun fetchItems() = itemDao.getItems() เชียงดาว @Query("SELECT * FROM item") fun getItems(): Flow<List<Item>> …

2
ตรวจจับ SimCard เป้าหมายของการโทรเข้าในอุปกรณ์ Multi-Sim
ฉันได้อ่านบทความจำนวนมากและลองใช้วิธีแก้ไขปัญหาต่าง ๆ มากมาย แต่จุดร่วมของโพสต์ทั้งหมดก็คือพวกเขาทั้งหมดล้าสมัยและอย่างน้อยฉันก็ไม่พบวิธีแก้ปัญหาที่จะทำงานบน Android รุ่นใหม่กว่า โพสต์ 1 , ผลลัพธ์: intent.getExtras().getInt("simId", -1)ส่งคืน -1 เสมอ โพสต์ 2ผลลัพธ์: intent.getExtras().getInt("slot", -1)ส่งคืน -1 เสมอ โพสต์ 3ผล: String[] array = new String[]{ "extra_asus_dial_use_dualsim", "com.android.phone.extra.slot", "slot", "simslot", "sim_slot", "subscription", "Subscription", "phone", "com.android.phone.DialingMode", "simSlot", "slot_id", "simId", "simnum", "phone_type", "slotId", "slotIdx" }; for (String item : array) { …

1
เค้าโครงแบบเคลื่อนไหวพร้อม EditText จะทำลายภาพเคลื่อนไหว
ฉันสร้าง MotionLayout ง่าย ๆ ซึ่งเกือบจะคล้ายกับเค้าโครงของผู้ประสานงาน (ภาพเคลื่อนไหวแตกต่างกันเล็กน้อย) บางสิ่งเช่นนี้ที่นี่: การใช้ EditText Views ภายในพื้นที่เนื้อหาจะแบ่งภาพเคลื่อนไหว MotionLayout ออกเมื่อคีย์บอร์ดเปิดขึ้น ภาพเคลื่อนไหวมีความล่าช้าสถานะไม่ถูกต้องและ UI เริ่มค้างเล็กน้อย ความคิดใด ๆ วิธีการแก้ปัญหานี้? เชื่อมโยงไปยังข้อผิดพลาดเป็น gif รุ่นที่ใช้: com.google.android.material:material:1.2.0-alpha01 androidx.constraintlayout:constraintlayout:2.0.0-beta3 ฉันสามารถจำลองพฤติกรรมนี้ได้ในแอปตัวอย่างขนาดเล็ก ตัวอย่าง layout.xml: <androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" app:layoutDescription="@xml/animation" tools:showPaths="true"> <androidx.appcompat.widget.Toolbar android:id="@+id/customtoolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.textview.MaterialTextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="32dp" android:layout_marginBottom="48dp" android:text="title" …

4
ปุ่มเหลืออยู่ในสถานะถูกเน้นด้วย touchListener และ clickListener
ฉันมีปัญหากับปุ่มของฉันอยู่ในสถานะไฮไลต์หลังจากทำสิ่งต่อไปนี้: public class MainActivity extends AppCompatActivity { @SuppressLint("ClickableViewAccessibility") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AppCompatButton button = (AppCompatButton) findViewById(R.id.mybutton); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("Test", "calling onClick"); } }); button.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: …

1
ไม่พบ Gradle เวอร์ชันที่ติดตั้งใน Android Studio หรือบนระบบของคุณเพื่อติดตั้ง wrapper
ฉันกำลังติดตั้ง android studio 3.5.1 หลังจากติดตั้งล่าสุดในขณะที่พยายามเรียกใช้แอปพลิเคชัน Android CORDOVA ของฉันฉันพบข้อผิดพลาดด้านล่าง: Checking Java JDK and Android SDK versions ANDROID_SDK_ROOT=undefined (recommended setting) ANDROID_HOME=D:\Software\sdk (DEPRECATED) Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android …

1
RenderScript ใช้งานไม่ได้บน macOS Catalina (10.15)
ฉันอัพเดตเป็น MacOS Catalina แล้ว เช้านี้ในขณะที่ฉันกำลังทำงานในโครงการ Android ของฉันทันใดนั้นก็เริ่มให้ข้อยกเว้นต่อไปนี้: "ข้อผิดพลาด: สาเหตุ: ข้อผิดพลาด = 86 ประเภท CPU ที่ไม่ดีในการปฏิบัติการ" ฉันสงสัยว่าเป็นเพราะฉันอัปเดตเป็น macOS 10.15 และเพราะฉันพยายามสร้าง APK สำหรับโครงการของฉัน (ดังนั้นมันจึงสร้างสิ่งที่สร้างการแสดงผลใหม่) นี่คือการติดตามสแต็กเต็มรูปแบบที่กำหนด: org.gradle.process.internal.ExecException: A problem occurred starting process 'command '/Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld'' at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:232) at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:209) at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:356) at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86) at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:38) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.