2017-08-30 4 views
8

के लिए निर्भरता क्या है I एंड्रॉइड टीवी ऐप को एंड्रॉइड स्टूडियो में स्थानांतरित करने का प्रयास करते हैं, जब मैं इसे संकलित करने का प्रयास करता हूं, मेरे पास कुछ आयात त्रुटियां थीं, मुझे उस निर्भरता को नहीं मिला जिसे मैं बनाने के लिए जोड़ सकता हूं इन समस्याओं को ठीक करने के लिए .gradleto। आयात की सूची है:एंड्रॉइड.media.tv

import android.media.tv.TvContentRatingSystemInfo; 
import android.media.tv.TvContract.WatchedPrograms; 
import com.android.tv.tuner.data.nano.Track.AtscCaptionTrack; 
import com.android.tv.tuner.data.nano.Track.AtscAudioTrack; 
import com.android.tv.tuner.data.nano.Channel; 

build.grdle है:

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 26 
buildToolsVersion "26.0.1" 

defaultConfig { 
    applicationId "com.android.tv" 
    minSdkVersion 23 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 

    ndk { 
     moduleName "libtunertvinput_jni" 
    } 
} 
sourceSets { 
    main { 
     res.srcDirs = ['src/main/res', 'src/main/usbtuner-res'] 
     jni.srcDirs = [] 
    } 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
    debug { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile files('libs/exoplayer.jar') 
compile project(':common') 
compile 'com.android.support:palette-v7:+' 
compile 'com.android.support:support-v4:+' 
compile 'com.android.support:support-annotations:+' 
} 
+0

क्या आप उस व्यवहार के साथ जिथब में एक साधारण परियोजना पोस्ट कर सकते हैं? – azizbekian

उत्तर

1

आप इन्हें आयात नहीं कर सकते क्योंकि उनके पास @SystemApi एनोटेशन है। TvContentRatingSystemInfo के स्रोत कोड के लिए आप this देख सकते हैं। मैंने WatchedPrograms भी चेक किया है और इसमें @SystemApi एनोटेशन भी है। मैंने अन्य तीनों की जांच नहीं की है।

इन तक पहुंचने के लिए आपको सिस्टम ऐप होना चाहिए। जैसा कि आप here देख सकते हैं, आपको अपने ऐप को \system\ फ़ोल्डर में धक्का देना होगा। आप एओएसपी बिल्ड सिस्टम here के बारे में विस्तृत जानकारी प्राप्त कर सकते हैं।

समाधान: बदलने से आपके इस github में .jar प्रणाली API को एक्सेस करने के लिए सक्षम होना चाहिए करने के लिए android.jar। कारण आपके मानक android.jar में सिस्टम एपीआई नहीं है। इसलिए आपको framework.jar (adb pull द्वारा) एमुलेटर से प्राप्त करने और core.jar के साथ गठबंधन करने की आवश्यकता है, तो आपके पास नया android.jar हो सकता है जिसमें सिस्टम एपीआई (सिस्टम विधियां और कक्षाएं framework.jar एमुलेटर से उपलब्ध हैं)।

इसके अलावा, आप कुछ सिस्टम API एक्सेस करने की \system\priv-app\ फ़ोल्डर में आपके apk धक्का चाहिए, लेकिन मैं नहीं जानता कि क्यों मैं जब मुझे लगता है कि GitHub खाते से .jar का उपयोग करने के लिए अपने \system\priv-app\ apk भेजे बिना प्रणाली API को एक्सेस कर सकते हैं।

मुझे लगता है कि मैं काफी स्पष्ट रूप से नहीं लिखता लेकिन कम से कम आप जो भी सामना कर रहे हैं उसके बारे में अधिक समझते हैं।

0

android.media.tv और com.android.tv Android SDK का हिस्सा हैं। इसलिए आपको gradle.build फ़ाइल में कोई अतिरिक्त पुस्तकालय शामिल करने की आवश्यकता नहीं है।

Update your SDK tools to version 24.0.0 or higher

और

Update your SDK with Android 5.0 (API 21) or higher

उदाहरण के लिए,

android { 
     compileSdkVersion 26 
     buildToolsVersion "26.0.1" 
     defaultConfig { 
      applicationId "com.example.tvapp" 
      minSdkVersion 15 
      targetSdkVersion 26 
      versionCode 1 
      versionName "1.0" 
     } 
} 
+0

एंड्रॉइड प्लेटफार्म संस्करण है: एपीआई 26 एंड्रोई एसडीके टूल्स: 26.0.02 लेकिन फिर भी यह काम नहीं कर रहा है – MRM

+0

क्या आपने फ़ाइल> अमान्य कैश/पुनरारंभ करने का प्रयास किया था? साथ ही, अपनी build.gradle फ़ाइलों को ऐप और मॉड्यूल दोनों पोस्ट करें। @ एमआरएम –

+0

हाँ मैंने किया, मैं अपने प्रश्न को मुख्य प्रश्न पर संलग्न करता हूं – MRM

0

अपने निर्भरता में इस प्रयोग "com.android.support:support:

बस सुनिश्चित करें कि करने के लिए कर -मेडिया-कंपैट: 26.0.2 "

और भी उपकरण संस्करण "26.0.1"

संकलित SDK संस्करण 26.

0

आप एप्लिकेशन स्तर Gradle में निर्भरता में जोड़ सकते हैं का उपयोग करें।

compile 'com.google.android.libraries.tv:companionlibrary:0.1'