Изображения Picasso не загружаются с помощью отладки USB, но работают нормально во время эмуляции - PullRequest
0 голосов
/ 13 июня 2019

Проблема: при использовании действия в Навигаторе навигации Picasso загружает изображения во время эмуляции, но не во время отладки по USB ... Любая помощь приветствуется!

ОБНОВЛЕНИЕ: РЕШЕНИЕ В ответе *

Вот изображение моего телефона не показывает изображение, и эмулятор работает нормально.Я использую миниатюру YouTube в качестве тестового изображения в Интернете: https://imagizer.imageshack.com/img921/7876/4sd4ak.jpg

Я заметил это в более крупном проекте, над которым работал, когда решил вынуть его на свой телефон, но при поиске решенияудалось изолировать его от свежей активности в Layout Navigation Drawer.

Вот что я знаю:

  • Обновлены все мои SDK, AndroidStudio, GooglePixel 3XL Phone (IRL)
  • Недействительно / Перезапущены мои Денежные средства в Android Studio
  • Эта проблема также возникает при миграции на AnrdroidX
  • Все телефоны Android работают должным образом при использовании эмулятора, но не отладка по USB на моемфизическое Google Pixel 3XL
  • ОБНОВЛЕНИЕ: я заставил его работать на моем Samsung Galaxy 7 через USB!
  • Другие макеты, такие как «Пустое действие» и т. д., работают нормально, даже в одном проекте

Я создал новое задание макета Навигатора в Android Studio и добавил следующее:

1) Зависимости Build.gradle (Module: app): реализация 'com.squareup.picasso: picasso: 2.5.2 '

2) В моем манифесте Android: использует разрешение android: name = "android.permission.INTERNET"

3) ImageView для моего content_main

4) В onCreate моей MainActivity: Picasso.with (this) .load ("http://img.youtube.com/vi/ek-5vIz_gDw/0.jpg").into(imageView)

// MainActivity without the additional override functions (no changes)

class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val toolbar: Toolbar = findViewById(R.id.toolbar)
    setSupportActionBar(toolbar)

    val fab: FloatingActionButton = findViewById(R.id.fab)
    fab.setOnClickListener { view ->
        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show()
    }
    val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
    val navView: NavigationView = findViewById(R.id.nav_view)
    val toggle = ActionBarDrawerToggle(
        this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close
    )
    drawerLayout.addDrawerListener(toggle)
    toggle.syncState()

    navView.setNavigationItemSelectedListener(this)

    Picasso.with(this).load("http://img.youtube.com/vi/ek-5vIz_gDw/0.jpg").into(imageView)

}

А мой content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/app_bar_main"
    tools:context=".MainActivity">


<ImageView
        android:layout_width="0dp"
        android:layout_height="0dp" app:srcCompat="@mipmap/ic_launcher_round"
        android:id="@+id/imageView" app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        android:contentDescription="@string/description"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Я неполучая любые сообщения об ошибках при запуске, только изображение не загружается в USB-отладке IRL.

1 Ответ

0 голосов
/ 17 июня 2019

ОБНОВЛЕНИЕ: Так что я смог заставить его работать на всех других физических телефонах, которые я пробовал.Однако, чтобы заставить его работать на Google Pixel 3XL, мне пришлось внести это изменение.Не уверен, почему это отличается, но это работает!

Я делал это раньше (не работал только мой физический пиксель 3):

    val imageLink = video.link
    Picasso.with(context).load("http://img.youtube.com/vi/$imageLink/0.jpg").into(imageView)

Не уверен, почему, но вотрешение, которое работает:

    val imageLink = "https://img.youtube.com/vi/${video.link}/0.jpg"
    Picasso.with(context).load(imageLink).into(imageView)

Надеюсь, что это поможет любому в том же положении!

...